mysqli_query() 需要参数 1,我找不到哪里做错了
mysqli_query() expects parameter 1 , i cant find where i done wrong
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;
我找不到我做错了什么,我切换了 $connection 和 $sql,仍然没有工作,mysqli_query() 期望参数 1 是我的sqli,
中给出的空值
谁能帮我看看?
声明一个将存储连接的私有变量。在 class 里面使用它。无需通过函数传递它。试试 -
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;
}
}
}
请检查您的插入查询。您的查询无法正常工作,请检查一下。
你可以尝试像
这样的查询
$sql="INSERT INTO $table(ID, '$fields') VALUES ('', '$values')";
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;
我找不到我做错了什么,我切换了 $connection 和 $sql,仍然没有工作,mysqli_query() 期望参数 1 是我的sqli,
中给出的空值谁能帮我看看?
声明一个将存储连接的私有变量。在 class 里面使用它。无需通过函数传递它。试试 -
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;
}
}
}
请检查您的插入查询。您的查询无法正常工作,请检查一下。 你可以尝试像
这样的查询 $sql="INSERT INTO $table(ID, '$fields') VALUES ('', '$values')";