我是PHP和MySQL的新手,我对SELECT查询有点麻烦。我对这个PHP / SQL变量有一些问题:
$dbPassword = mysql_query("SELECT UserData.Password FROM UserData WHERE UserData.EmailAddress = '.$loginEmail.'");
从" EmailAddress"的行中选择值的正确方法是什么?是否与Apache MySQL服务器中的另一个值相同?
所有帮助将不胜感激。
答案 0 :(得分:1)
请注意,$dbPassword
将是结果集对象,而不是标量。
您需要从结果集中“获取”行。
文档http://www.php.net/manual/en/function.mysql-query.php
中提供了一个示例PHP字符串连接也存在问题。
如果您在两个单独的步骤中执行此操作,则可以在执行之前回显(或printf或vardump)包含SQL语句的字符串。
另请注意,在SQL语句中包含“unsafe”值会使您的代码容易受到SQL注入攻击。 Little Bobby Tables
$sql = "SELECT UserData.Password FROM UserData WHERE UserData.EmailAddress = '"
. mysql_real_escape_string($loginEmail) . "'";
vardump($sql);
$res = mysql_query($sql);
(vardump
不是必需的;它只是用于调试,这是我们查看即将发送到数据库的字符串内容的一种方式。(当我们调试问题时,它可以帮助我们确定问题是在SQL文本中,还是在数据库中是否存在问题。
我们要测试对mysql_query
的调用是否实际返回了结果集,或者是否返回了错误。一旦我们验证了它是一个有效的结果集对象,我们就可以从结果集中获取行。 (执行该操作有多种功能。)
注意:文档中的红色框表示不推荐使用mysql扩展名。新代码应使用mysqli或PDO扩展名。