我有一個表單,它使用html表單從用戶處獲取值(id),並在名爲「account」的數據庫中查找以顯示所有值。如果用戶輸入的值在數據庫中不存在,則應顯示警報。即使設置爲空時,php mysql查詢也會返回true
//user_form.html
<html>
<form method="get" action="user_action.php">
<input type="text" name="val"/>
<input type="submit" value="Enter"/>
</form>
</html>
//user_action.php
<?php
$name=$_GET["val"];
$con = mysql_connect("localhost","my_username","my_password") or die('Could not connect: ' . mysql_error());
mysql_select_db("account",$con);
if(($result=mysql_query("select * from my_table where id=$name")))
//display the database table
else
echo '<script type="text/javascript">alert("Id not found in database!");</script>';
mysql_close($con);
?>
我的問題是,當我輸入ID不存在於數據庫中的值,它不會進入else塊,並顯示警報。 那麼,爲什麼查詢對所有值都返回true?
由於雙括號,他所做的方式是正確的,以檢查mysql_query是否爲false。因爲他正在設置結果變量,所以不需要雙等號。 – David
即使沒有雙重修辭,它也是有效的。單等於變量將'mysql_query'的返回值賦值給$ result,並將其返回 - 因此,您將結果分配給$ result,並同時測試$ result是否爲「true」。 ==比較從'mysql_query'到'$ result'的值的返回值 - 由於我懷疑$ result被定義,所以它可能是所需要的對象。 – Adam