我正在尝试整合一个插件脚本,该脚本从各个位置获取一系列值,包括csv和字符串,以更新我的数据库中的现有行。它的目的是为了更新WP电子商务的价格,当你开始只是一个sku和新的价格。第一个查询从db中检索我需要的附加信息,字符串以正确的顺序放置数据。
我已经准备好导入的字符串中的值了。但我一直在标题中得到错误:“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));
}
答案 0 :(得分:0)
不推荐使用mysql
扩展程序,强烈建议不要使用它。此外,mysql_query()
不接受查询占位符 ,它只接受一个或两个参数 - 查询字符串和可选的连接句柄。 另外,你在$my_string
中构建了一个非常奇怪的值,然后你只需要转储到你的查询字符串中。我很难想象你想要实现的目标。
答案 1 :(得分:0)
PHP's 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);
该代码未经测试 - 只是为了让您了解一般的想法。
答案 2 :(得分:0)
所以你的查询确实如此
update 'wp_postmeta' set datafield = \"".$data[$index-1]."\"
where meta_id=\"".$row['meta_id']."\"
and post_id=\"".$row['post_id']."\"
将数据字段的名称更改为应该是