【发布时间】:2012-08-05 16:45:42
【问题描述】:
首先让我说我环顾四周发现了类似的帖子,但没有一个对我有帮助,所以这就是我请求你帮助的原因。
使用 PHP,我正在尝试执行两个 SQL 查询。第一个查询使用INNER JOIN 执行Select 语句,另一个执行普通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
单独执行这两个查询,工作正常,但是当两者结合时,我得到了那个错误。有什么想法吗?
感谢您抽出宝贵时间阅读本文! 维杜
【问题讨论】:
-
你不需要重复选择同一个数据库——只有当你确实需要更改默认数据库时。
-
请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到 red box 了吗?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial.
标签: php mysql select stored-procedures