Php mysqli_query()需要参数1,我找不到哪里做错了
我找不到我做错了什么,我切换了$connection和$sql,仍然不工作,mysqli_query()希望参数1是mysqli,在中给出nullPhp mysqli_query()需要参数1,我找不到哪里做错了,php,mysqli,Php,Mysqli,我找不到我做错了什么,我切换了$connection和$sql,仍然不工作,mysqli_query()希望参数1是mysqli,在中给出null 有人能帮我看一下吗?声明一个将存储连接的私有变量。在课堂上使用它。不需要通过函数传递它。试试- class AirData{ function __construct() { $this->connect(); echo "start"; } function conn
有人能帮我看一下吗?声明一个将存储连接的私有变量。在课堂上使用它。不需要通过函数传递它。试试-
class AirData{
function __construct() {
$this->connect();
echo "start";
}
function connect(){
/*connect to data base change to PDO, for securely*/
$connection = mysqli_connect('localhost', DB_USER, DB_PASS);
if (!$connection) {
die('Could not connect: ' . mysqli_error());
}
mysqli_set_charset($connection, 'utf8');
$db_selected = mysqli_select_db($connection, DB_NAME);
if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
}
}
function insert($connection, $table, $fields, $values){
$fields = implode(", ", $fields);
$values = implode("','", $values);
$sql="INSERT INTO $table(ID, $fields) VALUES ('', '$values')";
/*error here something is wrong at here*/
if(!mysqli_query($connection,$sql)){
die('could not connect');
} else {
return TRUE;
}
}
}
$ALIST = new AirData;
请检查您的插入查询。您的查询工作不正常,请检查它。 你可以像这样尝试查询
class AirData{
private $connection;
function __construct() {
$this->connect();
echo "start";
}
function connect(){
/*connect to data base change to PDO, for securely*/
$this->connection = mysqli_connect('localhost', DB_USER, DB_PASS);
if (!$this->connection) {
die('Could not connect: ' . mysqli_error());
}
mysqli_set_charset($this->connection, 'utf8');
$db_selected = mysqli_select_db($this->connection, DB_NAME);
if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
}
}
function insert($table, $fields, $values){
$fields = implode(", ", $fields);
$values = implode("','", $values);
$sql="INSERT INTO $table(ID, $fields) VALUES ('', '$values')";
/*error here something is wrong at here*/
if(!mysqli_query($this->connection,$sql)){
die('could not connect');
} else {
return TRUE;
}
}
}
如何将$connection传递给insert()方法?我建议您将
$connection
设置为类的私有属性,然后将其用作参数,只需使用$this->connection
。问题是在connect()
函数中,您将连接id存储到变量$connection
,它是此函数中的局部变量,在函数返回时将被销毁。您需要将其存储在该功能之外-请参阅BOSE中士的答案。感谢它,感谢您对我的帮助。
$sql="INSERT INTO $table(ID, '$fields') VALUES ('', '$values')";