php mysql,变量帮助查询帮助

时间:2010-09-01 02:09:16

标签: php sql mysql

我有这个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

2 个答案:

答案 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));
相关问题