我正在尝试使用预准备语句进行删除查询。
这是我的查询和PHP -
$images = implode("','", $_POST['images']);
echo $images;
// Make the delete query:
$q = "DELETE FROM image_info WHERE image_id IN ('?')";
// Prepare the statement:
$stmt = $mysqli->prepare($q);
// Bind the variables:
$stmt->bind_param('s', $images);
// Execute the query:
$stmt->execute();
此编码删除一行但$images
具有一组ID。
有人可以告诉我这有什么问题吗? 谢谢。
答案 0 :(得分:0)
您在绑定过程中使用了错误的标识符,使用i
表示整数而不是s
表示字符串值
$images = implode("','", $_POST['images']);
echo $images;
// Make the delete query:
$q = "DELETE FROM image_info WHERE image_id IN ('?')";
// Prepare the statement:
$stmt = $mysqli->prepare($q);
// Bind the variables:
$stmt->bind_param('i', $images);
// Execute the query:
$stmt->execute();
答案 1 :(得分:0)
您不能在语句中使用单个?
绑定多个变量。
答案 2 :(得分:0)
您可以尝试循环使用bindParam,如下例所示,并且假设您同时拥有3个ID。
$stmt = $mysqli->prepare( "DELETE FROM image_info WHERE image_id IN ( ?, ?, ? )"
foreach ( $images as $key => &$val ) {
$stmt->bindParam( $key, $val );
}
$stmt->execute();
这有用吗?
最好的问候 弗雷德里克