PHP函数中处理数据库连接的方法

时间:2015-10-20 14:49:10

标签: php database function

我像这样准备了我的SQL连接

$connection = new mysqli('localhost', 'root', '', 'quiz')  ;

// sprawdz polaczenie
if (mysqli_connect_error()) {
echo "error is here". mysqli_connect_error();
}
else
echo "connected";

echo "<br>";

$query=('SELECT * from question') ;
$result=$connection->query($query);
mysqli->close($connection);

现在,如果我想在PHP函数中使用$connection,我将无法访问$connection

处理这个问题的最佳做法是什么?我无法在函数中反复准备下一个连接

2 个答案:

答案 0 :(得分:1)

<强> 1。不要关闭你的连接

删除此行:$mysqli->close($connection);

<强> 2。您可以使用&#34; global&#34;

$connection = new mysqli('localhost', 'root', '', 'quiz')  ;

// sprawdz polaczenie
if (mysqli_connect_error()) {
echo "error is here". mysqli_connect_error();
}
else
echo "connected";

do_something();

function do_something(){
    global $connection; //Function now knows to use $connection from global scope
    $connection->query("yourqueryhere");

    //or
    $_GLOBALS['connection']->query("yourqueryhere");
}

答案 1 :(得分:0)

假设您在全局范围内(在任何类或函数之外)建立了$ connection,您可以在$ GLOBALS超全局函数中使用它。

function foo() {
    ... some code ...
    $result = $GLOBALS['connection']->query('some query');
    ... some code ...
}

请参见此处的示例2:http://php.net/language.variables.scope