0

首先让我说我环顾四周,发现了类似的帖子,但没有一个对我有帮助,所以这就是我请求你帮助的原因。

使用 PHP,我正在尝试执行两个 SQL 查询。第一个查询用 做一个Select语句INNER JOIN,另一个做一个正常的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 回答