1

これが私のクエリです

SELECT * FROM wp_postmeta WHERE meta_value LIKE '".$_POST['username']."' AND meta_value LIKE '".$_POST['password']."'

問題は、meta_value ユーザー名と meta_value パスワードが 2 つの異なる行にあることです。両方を検索し、探している変数がそれらの行にあるかどうかを教えてくれるクエリを作成する必要があります。だから私は結果が単純な1を返すことを望みます

mysql_num_rows();

私はこれがばかげていることを知っており、異なる列を持つ同じ行にある必要がありますが、好きなようにやっている愚かなワードプレスプラグインと連携する必要があります.

4

1 に答える 1

1

このHAVING句を と組み合わせて使用​​すると、列ではなく複数の行にわたって発生するすべてGROUP BYの条件を満たす行を取得できます。

SELECT
    *
FROM
    wp_postmeta
WHERE
    meta_value IN ('$filtered_username','$filtered_password')
GROUP BY
    meta_id
HAVING
    COUNT(*) = 2

$_POST 値をクエリに直接挿入しないでください。これは、SQL インジェクション攻撃のオープン コールです。非推奨のmysql_*関数を使用しているため、最低限、 $_POST 変数をmysql_real_escape_string(). ただし、PDOとその準備済みステートメントのサポートを使用することをお勧めします。

于 2012-06-19T18:52:59.417 に答える