如何将该旧语句更新为PDO语句?
旧的:
$query = "UPDATE tbl_product
SET
image = CASE WHEN '$post_image' IS NULL OR CHAR_LENGTH('$post_image') = 0 THEN image ELSE '$post_image' END
和新的一个PDO
$query = "UPDATE tbl_product
SET
image=:image
谢谢!
答案 0 :(得分:2)
PDO具有命名占位符的优势。与MySQLi仅使用?
作为占位符(PDO也具有占位符)不同,您可以使用:image
作为占位符,并在必要时重复它-PDO然后将占位符替换为通过execute()
或使用bindParam()
/ bindValue()
绑定到该占位符。
只需将'$post_image'
的所有实例替换为:image
。请注意,在占位符周围没有引号。
$query = "UPDATE tbl_product
SET image = CASE WHEN :image IS NULL OR CHAR_LENGTH(:image) = 0 THEN image
ELSE :image END";
然后,您准备并执行查询,将$post_image
的值分配给:image
占位符。请注意它在数组[..]
内的情况。
$stmt = $pdo->prepare($query);
$stmt->execute(["image" => $post_image]);
文档: