PHPで大規模なデータベースにクエリを実行していますが、私は十分に近くで実行していません。 私は必要なコードを持っている、私は簡単にこれらのステートメントをコンパクトに良い方法を見つけることができません。PHP/SQL、クエリ数を減らす
$q = $_GET['q'];
(dbinit)
$query = "SELECT post_id FROM wp_postmeta WHERE meta_key = '_billing_email' AND meta_value = '$q'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
$thing = $row['post_id'];
$querys = "SELECT 'meta_value' FROM wp_postmeta WHERE post_id = '$thing' AND meta_key = '_order_number'";
$results = mysql_query($querys);
$rows = mysql_fetch_array($results);
$postid = $rows['meta_value'];
$queryss = "SELECT post_id FROM $table WHERE meta_value = $postid AND meta_key = '_order_number'";
$resultss = mysql_query($query);
$rowss = mysql_fetch_array($result);
$order_id = $rowss['post_id'];
(handling)
}
私は、これらのクエリを行うには、より効率的な方法がある場合は疑問に、あるいは多分1つのクエリでそれらを持っているのですか?
結合を使用し、ドライバを更新し、パラメータ化されたクエリを使用します。 – chris85
@ chris85非常に少ない単語ですごく偉大な - 私ができるなら、もう一度upvoteだろう。 – JimL
**警告**: '$ _GET'データをクエリに直接入れて、危険な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成しました。 **決してこれをしないでください。代わりに、WordPress [prepared statements features](http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks)を使用して、すべてのデータパラメータを適切にエスケープします。 – tadman