【发布时间】:2014-10-08 00:27:13
【问题描述】:
我正在使用准备好的语句来执行更新。但由于某种原因,包含撇号的字符串不会得到更新。有没有办法可以更新字符串并保留撇号??
以下是我的查询示例
$query = "UPDATE items SET item_name = ? , item_price = ? WHERE id = ? ";
$stmt = $db->prepare($query);
foreach($items_and_prices as $id => $item_and_price){
$item = $item_and_price[0];
$price = $item_and_price[1];
$stmt->bind_param("sdi",$item, $price,$id);
$stmt->execute();
}
【问题讨论】:
-
“未更新”是什么意思?我建议您在创建
mysqli连接之前添加以下内容 ~mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); -
当我更新输入字段中的值然后刷新页面时,它不会显示带有撇号的字符串。例如,如果字符串最初是“Your”,而我将“Your”更新为“You're”。字符串将显示“Youre”,省略撇号。
-
你如何显示记录?此外,您不应该在
foreach循环中使用bind_param()。您可以在调用prepare()后立即绑定参数
标签: php mysqli prepared-statement