2017-04-12 79 views
-1

我正在让用户输入他们的电子邮件和密码,并且我希望从表中回显他们的用户名。这是我可以证明我已经从表中检索到一个值。使用MySQL和PHP返回单个值

我知道我的查询在phpmyadmin上工作,并且我的php中也检索到了电子邮件和密码。我与我当前的代码得到的错误是HTTP错误500:

mysql_connect($database,$username,$password); 
@mysql_select_db($username) or die ("Unable to select database"); 

$email = mysql_escape_string ($_POST['email']); 
$password = mysql_escape_string ($_POST['password']); 
$email = stripslashes($email); 
$password = stripslashes($password); 
$email = mysql_escape_string($email); 
$password = mysql_escape_string($password); 


$SQL = "SELECT Name FROM users WHERE BINARY Email = '$email' and BINARY password = '$password'"; 

$result = mysql_query($SQL) or die("Unable to Run Query"); 

$value = mysql_fetch_object($result) or die("Unable to Fetch Object"); 

echo "<h2>$value</h2>" or die("Unable to Echo"); 
+1

如果你有适当的访问权限,您可以通过启用错误报告对PHP来帮助自己。将display_errors = on shouold添加到您的PHP.ini文件中。 http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display – Stese

+0

也许可以帮助https://www.lifewire.com/500-internal-server-error-explained -2622938 – b2ok

回答

0

更改statment到

$SQL = "SELECT Name FROM users WHERE BINARY Email = '".$email."' and BINARY 
     password = '".$password."'"; 
+0

这个解决方案给了我和以前一样的错误,还有其他解决方案或想法吗? –

+0

您的声明中的二进制文件是什么? –

0

首先不使用mysql_ *,因为它们已被弃用。你可以做到这一点:

$result = mysql_query($SQL); 
if(mysql_num_rows($result) > 0) 
{ 
    $data = mysql_fetch_assoc($result); 
    // $data is an array, to return a single value, do it like $data['name'] 
} 
+0

你建议不要使用它们,然后在你的答案中使用它们? – Stese

+0

我只是告诉你如何做到这一点。您可以将其更改为** mysqli _ *** –

+0

它返回一个空白页面(这意味着没有错误!)。我怎样才能看到它是否返回了正确的结果? –

0

你应该真的放弃旧的mysql连接器并切换到MySQLi。

然而,你应该看看mysql_result()