请指教我在哪里做错了?
$db = new mysqli("localhost","root","","saad");
$prep = array();
foreach($data_array as $k => $v ) {
$prep[':'.$k] = $v;
}
$sth = $db->prepare("INSERT INTO records ( " . implode(', ',array_keys($data_array)) . ") VALUES (" . implode(', ',array_keys($prep)) . ")");
$res = $sth->execute($prep);
我做的不好
最佳答案
考虑将查询字符串移动到单独的变量中:
$sql = "INSERT......";
$sth = $db->prepare($sql);
然后尝试查看$ sql的内容(例如,使用
var_dump($sql)
)。这可能会使您走上正确的道路。另外,在
$sth->execute()
之后添加:$error = $db->errorInfo();
echo $error[2];
如果有错误消息,它将显示MySQL错误消息。 (不过不要忘记稍后删除所有这些调试输出。)