PHP基本连接mysqli_query错误
问题描述:
只是建立到SQL DB的简单连接。PHP基本连接mysqli_query错误
我写了这个调用函数的简单连接,所有的PHP核心API函数都是mysqli
而不是mysql
所以没有混合进行,也许我错过了一些相当基本的东西?
我收到的错误是:Warning: mysqli_query() expects parameter 1 to be mysqli, null given in G:\xampp\htdocs\phpBackToBasics\connect.php on line 29
我把vardump检查$connection
并且它是由mysqli_connect
返回真。
connection.php
function db_connection()
{
static $connection;
if (isset($connection)) {
$host = 'localhost';
$config = parse_ini_file('config.ini');
$connection = mysqli_connect($host, $config['username'], $config['password'], $config['phpBackToBasics']);
}
if ($connection === false) {
return mysqli_connect_error();
}
return $connection;
}
function db_query($query)
{
$connection = db_connection();
var_dump(print_r($connection)); //<== true.
$result = mysqli_query($connection, $query);
if ($result === false) {
return mysqli_error($connection);
}
return $result;
}
function db_error()
{
$connection = db_connection();
return mysqli_error($connection);
}
create.php
include_once 'connect.php';
$result = db_query("INSERT INTO 'users' ('name', 'email') VALUES ('boolBool', '[email protected]')");
if ($result === false) {
$error = db_error();
echo 'you have an error: '.$error;
} else {
return 'Row has been added';
}
答
更改这些行:
static $connection;
if (isset($connection)) {
如下:
static $connection = null;
if ($connection == null) {
你的代码检查连接是否存在,尝试连接。相反,它应该检查连接是否不存在,尝试连接。
你不能'var_dump'一个'print_r()'。使用'var_dump($ connection);'而不是'var_dump(print_r($ connection));' - 你会得到什么? – Tom
没关系,我得到了1对我来说足够好,现在都很好,谢谢@thebluefox的评论。 – clusterBuddy