我为同意或拒绝dotpay交易的WordPress编写函数,我有很大的问题。当我尝试使用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和debug on not work(我没说)
答案 0 :(得分:0)
您的范围中是否将变量$wpdb
设置为全局?
答案 1 :(得分:0)
您可以使用下面的reg exp删除特殊字符,但如果您分享查询中的某些特殊字符会更好,这样我就可以为您提供更好的主意。
$description = preg_replace("/[^A-Za-z0-9 ]/", '', $description);
如果你在帖子标题中有特殊字符而不是你需要转换$ description值来匹配那些标题,你可能需要使用php的htmlentites函数。