1

我正在尝试组合一个插件脚本,该脚本从包括 csv 在内的各个位置获取一系列值并将它们串在一起以更新我的数据库中的现有行。当您从 sku 和新价格开始时,它旨在更新 WP Ecommerce 的价格。第一个查询从数据库中检索我需要的附加信息,并且字符串以正确的顺序放置数据。

我已经准备好要导入的字符串中的值。但我不断收到标题中的错误:“mysql_query() 的参数计数错误”。谁能帮我吗?我在这里做错了什么吗?

$result = mysql_query("SELECT * FROM `wp_postmeta` WHERE `post_id` = (SELECT `post_id` FROM `wp_postmeta` WHERE `meta_value` = '$var') AND `meta_key` = '_wpsc_price'") or die(mysql_error()); 

while ($row = mysql_fetch_array($result))
{
    //Collates all the info for the line of data we need...
    $my_string = ($row['meta_id'].$row['post_id'].$row['meta_key'].$data[$index-1]);
    global $wpdb; 

$update = mysql_query("REPLACE TABLE 'wp_postmeta' VALUES ($my_string)",
        mysql_real_escape_string($meta_id), 
        mysql_real_escape_string($post_id), 
        mysql_real_escape_string($meta_key),
        mysql_real_escape_string($meta_value)); 
}
4

3 回答 3

0

mysql扩展已被弃用,强烈建议不要使用它。此外,它根本mysql_query()不接受查询占位符,它只接受一两个参数——查询字符串和可选的连接句柄。此外,您正在构建一个非常奇怪的值,然后您只需将其转储到您的查询字符串中。我什至很难想象你想通过它来完成什么。$my_string

于 2012-09-19T11:53:28.057 回答
0

PHP 的 mysql_query需要一个或两个参数。你想做的是像

$queryString = sprintf("REPLACE TABLE 'wp_postmeta' VALUES %s, %s, %s, %s",
    mysql_real_escape_string($meta_id), 
    mysql_real_escape_string($post_id), 
    mysql_real_escape_string($meta_key),
    mysql_real_escape_string($meta_value));
$update = mysql_query($queryString);

该代码未经测试 - 只是为了让您了解总体思路。

于 2012-09-19T11:56:31.703 回答
0

所以真的你的查询

update 'wp_postmeta' set datafield = \"".$data[$index-1]."\"
where meta_id=\"".$row['meta_id']."\" 
and post_id=\"".$row['post_id']."\"

将数据字段的名称更改为应为的名称

于 2012-09-19T12:41:25.753 回答