在单独/不同的PHP函数中使用MYSQLI

G S*_*pot 1 php sql mysqli

我正在从MYSQL转换到MYSQLI,我需要帮助将MYSQLI放入单独/不同的函数中.

从我在网上找到的所有"教程"中,它们都有一个很长的代码,而不是我的主要脚本可以调用的独特/单独的函数.

例如: -

  • 连接到MYSQLI
  • 做SELECT
  • 退出MYSQLI

我所追求的是: -

MYSQLI.PHP

     <?
     function connect_mysqli()
     {
     $con=mysqli_connect("localhost","wrong_user","my_password","my_db");
     // Check connection
     if (!$con)
     {
     die("Connection error: " . mysqli_connect_errno();
     }
     // Return the connection back to where i called it ??
     }
     function do_query ($sql)
     {
     $row = $con->query("$sql")->fetch_array();
     return $row;
     }
     function close_mysqli()
     {
      $mysqli->close();
     }
     ?>
Run Code Online (Sandbox Code Playgroud)

在我的脚本中我想打电话: -

another.php

      <?
      include_once("MYSQLI.PHP");
       connect_mysqli();

         ....

        do some SELECT
       do some UPDATE

       close_mysqli();
        ?>
Run Code Online (Sandbox Code Playgroud)

到目前为止,从我收到的错误代码,到mysqli的"连接"没有被传递到我的其他脚本/从我的其他脚本传递

有没有人使用函数(不仅仅是代码的一半)得到mysqli的工作/测试示例 - 而是一个简单SELECT的工作示例

一旦我走到那一步,我可以做其余的事情.

sil*_*lly 5

修复您的包含文件

/**
 * @return mysqli
 */
function connect_mysqli()
{
    $con = mysqli_connect("localhost","wrong_user","my_password","my_db");
    // Check connection
    if (!$con)
    {
        die("Connection error: " . mysqli_connect_errno());
    }

    return $con;
}

function do_query ($con, $sql)
{
    $row = $con->query("$sql");
    if($row) {
        return $row->fetch_array();
    }
    return null;
}

function close_mysqli($con)
{
    $con->close();
}
Run Code Online (Sandbox Code Playgroud)

现在你可以运行这样的脚本了

include_once("MYSQLI.PHP");
$connection = connect_mysqli();

if(null !== $connection) {
    print_r(do_query($connection, "SELECT * FROM yourTable"));

    close_mysqli($connection);
}
Run Code Online (Sandbox Code Playgroud)

但为了正确处理,请创建一个连接接口和mysqli的实现

interface myConnectionClass {
    function connect();
    ....
}
Run Code Online (Sandbox Code Playgroud)

和一个mysqli实现

class myMysqlIConnection implements myConnectionClass {
    function connect() {
       //do more... save connection etc...
       return true; //sucess
    }
}
Run Code Online (Sandbox Code Playgroud)