0

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 は動作しません(私は推測します)

4

2 に答える 2

0

以下の正規表現を使用して特殊文字を削除できますが、より良いアイデアを提供できるように、クエリの特殊文字の一部を共有することをお勧めします。

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

投稿のタイトルに特殊文字が含まれている場合は、$description 値をそれらのタイトルに一致するように変換する必要があり、php の htmlentites 関数を使用する必要がある場合があります。

于 2013-10-21T05:18:19.183 に答える