2017-04-12 33 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()