我有这个mysql查询:
UPDATE `table`.`wp_12_postmeta`
SET `meta_value` = 'yyy'
WHERE `wp_12_postmeta`.`meta_id` =5
LIMIT 1 ;
我如何加入这个:
wp_12_
我想要一个变量$prefix
(变量包含wp_4_,wp_3_等)yyy
我想要一个值$perf
(变量是名称)5
我想要一个值$meta_id
(变量是一个nr)谢谢你!
P.S。
这是我使用的,它的工作原理:
$wpdb->query("UPDATE ".$prefix."postmeta SET meta_value = '".$perf."' WHERE meta_id = '".$meta_id."' LIMIT 1 ");
问题是,当我执行此查询时,将更新segl post meta字段,而不是仅更新一个。 TY
答案 0 :(得分:2)
使用:
$query = sprintf("UPDATE `table`.`%s`
SET `meta_value` = '%s'
WHERE `%s`.`meta_id` = %d
LIMIT 1 ",
mysql_real_escape_string($prefix),
mysql_real_escape_string($perf),
mysql_real_escape_string($prefix),
mysql_real_escape_string($meta_id));
答案 1 :(得分:1)
以下是我用PDO编写的方法:
$prefix = "wp_4_";
$sql = "UPDATE `table`.`{$prefix}postmeta` SET `meta_value` = ?
WHERE `{$prefix}postmeta`.`meta_id` = ? LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->execute(array($perf, $meta_id));