본문 바로가기
MySql

MySQL mysqli를 사용하여 연결을 포함하는 올바른 방법

by 베이스 공부 2021. 2. 5.
반응형

아래는 db.php 아래의 코드입니다.

    <?php
$con = mysqli_connect('localhost', 'root', '', 'mydb');

/* check connection */
if (!$con) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

?>

index.php에서 db.php 및 functions.php를 다음과 같이 포함합니다.

include("includes/db.php");
include("includes/functions.php");

functions.php는 또한 db.php 연결을 사용합니다. mysql을 사용할 때 전에 문제가 없습니다. 하지만 mysql을 mysqli로 변경 한 후 "Warning : mysqli_query ()는 parameter 1이 mysqli가 될 것으로 예상하고 null이 주어졌습니다."라는 오류가 functions.php에 표시됩니다.

다음은 오류가있는 functions.php의 함수입니다.

function get_type($r_id){
    $result=mysqli_query($con, "select type from rooms where id=$r_id") or die("select type from rooms where id=$r_id"."<br/><br/>".mysqli_error());
    $row=mysqli_fetch_assoc($result);
    return $row['type'];
}

내 솔루션은 다음과 같이 mysqli를 호출하는 functions.php의 모든 함수에 db.php를 추가하는 것입니다.

function get_type($r_id){
    include("includes/db.php");
    $result=mysqli_query($con, "select type from rooms where id=$r_id") or die("select type from rooms where id=$r_id"."<br/><br/>".mysqli_error());
    $row=mysqli_fetch_assoc($result);
    return $row['type'];
}

이것이 올바른 해결책인지 궁금합니다.

 

해결 방법

 

문제는 $ con을 함수에 사용할 수 없다는 것입니다.

각 함수에 다른 인수를 추가 할 수 있습니다.

function get_type($con, $r_id)...

그런 다음 $ con을 전달하십시오.

include('includes/db.php');
include('includes/functions.php');
$blah = get_type($con, 5);

또는

예를 들어이 global $ con; 을 추가하여 각 함수에서 $ con에 액세스 할 수 있도록 할 수 있습니다.

function get_type($r_id){
    global $con;
    $result=mysqli_query($con, "select type from rooms where id=$r_id") or die("select type from rooms where id=$r_id"."<br/><br/>".mysqli_error());
    $row=mysqli_fetch_assoc($result);
    return $row['type'];
}

내 친구 .. 당신의 선택

(이 고양이의 피부를 벗기는 다른 방법이있을 수 있습니다)

 

참조 페이지 https://stackoverflow.com/questions/11492285

 

 

반응형

댓글