0

我为 WordPress 编写了同意或拒绝 dotpay 交易的函数,但我遇到了很大的问题。当我尝试使用 wpdb->get_row 调用 sql 查询时,我无法得到任何结果(大小为 0)。我尝试打印我的查询并调用 phpMyAdmin - 这有效。

查询和调用:

 $query = "SELECT wp_posts.id "
         ." FROM wp_posts "
         ."INNER JOIN wp_postmeta "
         .   "ON wp_posts.id =  wp_postmeta.post_id " 
         ."WHERE wp_postmeta.meta_value =%d AND wp_postmeta.meta_key='amount' AND post_title = %s;";
$post_id = $wpdb->get_row($wpdb->prepare($query, $amount, $description));

参数:

$amount = $_POST['amount'];
$description = mysql_real_escape_string(trim($_POST['description']));

我也在没有准备的情况下尝试,它不起作用。

我找不到任何日志,因为这个脚本是由 dotpay 调用的。所以 wp_config 和调试不起作用(我想)

4

2 回答 2

0

您可以使用下面的 reg exp 删除特殊字符,但如果您共享查询的一些特殊字符会更好,以便我可以给您更好的主意。

$description = preg_replace("/[^A-Za-z0-9 ]/", '', $description);

如果您在帖子标题中有特殊字符,则需要转换 $description 值以匹配这些标题,并且您可能需要使用 php.ini 的 htmlentites 函数。

于 2013-10-21T05:18:19.183 回答
0

您是否在您的范围内将变量$wpdb设置为全局?

于 2013-10-18T11:48:25.133 回答