Php mysql help help help help

I have this mysql query:

UPDATE `table`.`wp_12_postmeta` 
   SET `meta_value` = 'yyy' 
 WHERE `wp_12_postmeta`.`meta_id` =5 
 LIMIT 1 ;

How to enable this:

  • instead wp_12_I need a variable $prefix(the variable contains wp_4_, wp_3_, etc.)
  • instead yyyI need a value $perf(variable - name)
  • instead 5I need a value $meta_id(variable - nr)

Thanks u!

PS

here is what i use and it works:

$wpdb->query("UPDATE ".$prefix."postmeta SET meta_value = '".$perf."' WHERE meta_id = '".$meta_id."' LIMIT 1 "); 

The problem is that when I execute this request, the meta field is updated, not just one. Ty

+3
source share
2 answers

Here is how I would write it with 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));
+1
source

Using:

$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));
+2
source

Source: https://habr.com/ru/post/1762571/


All Articles