我正在尝试将数据从php插入db
public function writeIntoDB($fields, $values, $table){
$query = $this->composeInsertQuery($fields, $values, $table);
if (($this->conn->query($query)) === TRUE){
...
}
echo "Error: " . query . "<br>" . $this->conn->error;
}
我编写了此函数,但是if语句中的代码从未执行,我只得到没有错误的回声,因为$this->conn->error
返回null。
另一个调用的函数是composeInsertQuery(...):
private function composeInsertQuery($fields, $values, $table){
$query = "INSERT INTO " . $table . " (id,";
foreach ($fields as $value) {
$query .= $value . ",";
}
$query = substr($query, 0, -1) . ") VALUES ('$this->key',";
foreach ($values as $value) {
$query .= "'$value',";
}
$query = substr($query, 0, -1) . ")";
return $query;
}
它以模块化的方式构成查询,因为我每次都需要具有不同数量的字段。但这不是问题,因为我尝试打印组合查询并将其直接分配给变量,如下所示:
public function writeIntoDB($fields, $values, $table){
$query = "INSERT INTO ... all the query ....";
if (($this->conn->query($query)) === TRUE){
...
}
echo "Error: " . query . "<br>" . $this->conn->error;
}
但是即使在这种情况下,我也得到了$this->conn->error
总是空字符串的回显。当然,相同的查询可以从终端正常工作。
$this->conn->query
返回NULL,根据PHP文档,这很奇怪:
失败时返回FALSE。为了成功执行SELECT,SHOW,DESCRIBE或EXPLAIN>查询,mysqli_query()将返回mysqli_result对象。对于其他>成功的查询,mysqli_query()将返回TRUE。
答案 0 :(得分:0)
删除composeInsertQuery()中的id字段