我试图创建一个动态函数,通过使用预处理语句将数据插入从数组中获取的数据库中,因此我在Internet中找到了此代码,但它并没有按预期工作。
第一个功能" posts_info"用于调用"插入函数"并将数据发送给它。
function posts_info($ registered_data){
global $connect;
$table = "posts";
$cols =array_keys($registered_data);
$values = $registered_data;
insert($table, $cols, $values);
}
"插入功能"以上用于将数据插入数据库
function insert($table, $cols, $values){
global $connect;
$placeholder = array();
for ($i = 0; $i < count($values); $i++)
$placeholder[] = '?';
$sql = 'INSERT INTO '. $table . ' (`' . implode("`, `", $cols) . '`) ';
$sql.= 'VALUES (' . implode(", ", $placeholder) . ')';
$stmt = $connect->prepare($sql);
$stmt-> bind_param("issssss",$a,$b,$s,$d,$u,$o,$p);
$stmt->execute();
$stmt->close();
}
当我尝试插入某些内容时,我会收到此错误
请帮我解决这个问题。
我调整了函数以使用mysqli而不是PDO
我得到的新错误是
mysqli_stmt :: execute()需要0个参数,第29行/opt/lampp/htdocs/site1/admin/core/function/general.php中给出的参数为1
第29行是
$ stmt-&GT;执行($值);
在插入功能
中