1

このクエリを機能させるのに問題があります.2つのテーブルがあり、1つはクライアント情報で、もう1つは製品情報です. データベースのクエリ中にそれらに参加しようとしています。

mysql_query(
    "SELECT client.id, client.email, client.prodid, prod.id, prod.name
    FROM client, prod
    WHERE client.id ="'.mysql_real_escape_string($_GET["id"]).'"
    AND client.prodid =prod.id"
);

しかし、そのクエリは何も返しません。私は何を間違っていますか?前もって感謝します。

4

2 に答える 2

3

あなたの引用は間違っています。

メソッドで文字列を開始するには " を使用します。途中で を使用します。代わりに"'.mysql_real_escape_string($_GET["id"]).'"を使用することに注意してください。"''"

これはうまくいくはずです (PHP の観点から、私は SQL 構文をチェックしませんでした):

mysql_query(
    "SELECT client.id, client.email, client.prodid, prod.id, prod.name
    FROM client, prod
    WHERE client.id ='".mysql_real_escape_string($_GET["id"])."'
    AND client.prodid =prod.id"
);
于 2012-12-13T00:57:17.407 に答える
1

あなたの見積もりは、動的 ID 変数をキャンセルしているようです。client.id フィールドが数値の場合、mysql_real_escape_string() を囲む一重引用符を削除する必要があります。

mysql_query(
 "SELECT client.id, client.email, client.prodid, prod.id, prod.name
 FROM client, prod
 WHERE client.id = ".mysql_real_escape_string($_GET["id"])." AND client.prodid = prod.id"
);

PHPMyAdmin で動作する場合、クエリは問題ありません。デバッグを有効にして、var_dump() を使用します。

ini_set('display_errors','on');
error_reporting(E_ALL);
$result = mysql_query($sql_query);
var_dump($result);
于 2012-12-13T01:00:31.453 に答える