让mysql连接变量在函数内部也可用


Make MySQLi conenction variable available inside functions too

一个PHP页面,例如common.php包含行,以及其他一些PHP变量和代码。

$mysqli=new MySQLi("localhost", "username", "password");
因此,在其他页面中,我简单地包含了这个common.php,使用require_once("common.php")并使用$mysqli变量进行所有与数据库相关的操作。一切正常。在随机情况下,我需要在PHP页面中创建一个函数,如
function checking($some_data)
{
  // Using $mysqli check $some_data with database here and return 0 or 1 based on database operations
  // Here it says $mysqli is not defined.
}
$somevariable=$mysqli->prepare($query); // This is outside the function and works fine
$result=checking($some_data); // This does not work and says $mysqli not defined.

我尝试在函数内添加global $mysqli。但如果我这样做,MySQLi连接是不可用的。在每个函数中使用连接参数定义$mysqli,听起来很疯狂。简单的解决办法是什么?

在函数中添加global $mysqli将在这种情况下工作得很好。如果它不工作,你正在做一个错误的地方在你的函数或在查询(可能是)。

function function_name_here($arguement_variable_here)
{
  global $mysqli;
  $mysqli->query($query);
}

确保在函数定义之前包含了依赖文件- common.php。如果include/require在函数定义下面完成,在某些情况下可能无法工作。