0

まず第一に、私は周りを見回してこのような同様の投稿を見つけたと言わせてください。

PHP を使用して、2 つの SQL クエリを実行しようとしています。最初のクエリは でSelectステートメントを実行しINNER JOIN、もう 1 つは通常のselectステートメントを実行します。

これが私のコードです:

$conn = mysql_connect(DBHOST,DBUSER,DBPASS);

mysql_select_db(DBNAME);
$result = mysql_query("
      SELECT a.`role` AS 'role'
      FROM authme
      INNER JOIN a
      ON `authme`.`username` = `a`.`username`
      WHERE `authme`.`username` = 'vidhu';
", $conn); 
echo mysql_result($result, 0) . "<br />";

mysql_select_db(DBNAME);
$result = mysql_query("SELECT `email` FROM `authme` WHERE `username` = 'vidhu'", $conn); 
echo mysql_result($result, 0) . "<br />";

したがって、このページを実行すると、次のようになります。

Admin   <--- Result from first query

Warning: mysql_result() expects parameter 1 to be resource, boolean given in    C:\Apache24\htdocs\test.php on line 12  <---- second query

両方のクエリを個別に実行すると問題なく動作しますが、両方を組み合わせるとエラーが発生します。何か案は?

これを読んでくれてありがとう!ヴィドゥ

4

2 に答える 2

2

mysql_query失敗した場合、関数はブール値のFALSE を返します。失敗したかどうかを確認せずに結果を使用しているため、適切な結果の代わりにその FALSE 値を渡しています。

于 2012-08-05T16:49:29.013 に答える
0

するときmysql_query(query,connection)は、常に使用する必要がありますor die(mysql_error());

したがって、次のようになります。

mysql_query("SELECT * FROM sometable") or die(mysql_error());

false を返すだけでなく、エラーの時点で停止し、MYSQL コードで発生している正確なエラーをエコーアウトします。

于 2012-08-05T18:04:56.553 に答える