【发布时间】:2019-09-10 17:12:18
【问题描述】:
我正在使用准备好的语句向我的数据库添加行。我正在重组我的代码,并且遇到了 bind_param 的问题 - 我认为它是语法问题,但无法找出问题所在。
没有为准备好的语句中的参数提供数据
function insertRow($fieldNames, $fields, $table, $link) {
$field_names=implode(', ',$fieldNames);
$field_values=implode(', ',$fields);
//add question marks
$q_marks=array();
forEach($fieldNames as &$qm) {
array_push($q_marks, "?");
}
$qs = implode(',',$q_marks);
$stmnt = "INSERT INTO $table ($field_names) VALUES ($qs)";
echo("<br>$stmnt<br>");
$addrow = $link->prepare("INSERT INTO $table ($field_names) VALUES ($qs)");
//add param types (all strings)
$s_chars=array();
forEach($fieldNames as &$s) {
array_push($s_chars, "s");
}
$s = implode('',$s_chars);
echo("$s, $field_values<br>");
$addrow->bind_param($s, $field_values);
try {
echo("adding row...");
$addrow->execute();
} catch(Exception $e){
echo("error: " .$e ."<br>");
return false;
}
}
【问题讨论】:
-
谢谢,我是。一切都在到达这里之前进行了消毒
标签: php mysqli prepared-statement bindparam