我正在用PHP编写Web应用程序,当我运行脚本时,出现此错误:
数组到字符串的转换
这是引发错误的脚本。
public function insert($table, array $columns, array $values) {
$sql = "INSERT INTO " . $table .
" (" . implode(',' , $columns) . " )
VALUES (" . implode(',',
$values) . ")";
$this->request($sql);
}
这是请求函数:public function request($sql, $param = null) {
if ($param == null) {
$query = Database::getInstance()->getDb()->query($sql);
}
else {
$query = Database::getInstance()->getDb()->prepare($sql);
$query->execute(array($param));
}
return $query;
}
N.B:我正在使用自己的MVC框架。那么,任何建议或帮助都会被重视吗?
问候
YT
最佳答案
我建议您修改类方法以使用参数化查询:
class Test {
public function insert($table, array $columns, array $values) {
$sql = "INSERT INTO " . $table . " (" . implode(',' , $columns) . ")
VALUES (?" . str_repeat(",?", count($columns) - 1) . ");";
echo $sql;
$this->request($sql, $values);
}
public function request($sql, $param = null) {
if ($param == null) {
$query = Database::getInstance()->getDb()->query($sql);
}
else {
$query = Database::getInstance()->getDb()->prepare($sql);
$query->execute($param);
}
return $query;
}
};
$test = new Test();
$test->insert('tbl', ['id', 'name'], [1, 'first row']);
Online PHP test
关于php - 如何修复此错误: “array to string conversion ” ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65342688/