2016-08-04 35 views
0

我想檢查條目是否屬於數據庫或不。檢查一個條目是否屬於數據庫

$result = mysql_query("SELECT Lot# FROM data WHERE Lot#='$batch'"); 
if(mysql_num_rows($result) == 0) { 
    echo "Batch# does not exist. please enter a valid batch#"; 
    } 
    else { 
    header("Location: http://localhost/EasyTrack/std Order1.php"); /* Redirect browser */ 
} 

會發生什麼事,在這兩種情況下,如果條目屬於或不屬於數據庫 它表明:

警告:mysql_num_rows()預計參數1是資源,布爾在C中給出:\ XAMPP \ htdocs \ EasyTrack \ StdOrderUpdate.php在線28 批次編號不存在。請輸入有效批次#

我的方法是檢查正確嗎?如果不是,更好的方法是什麼?

+0

是連接數據庫完成? – jitendrapurohit

回答

0

您的代碼有很多方面可能存在錯誤(安全性)。但是,理所當然,這只是一個示例代碼,根據PHP documentation

的mysql_query()也將失敗並返回FALSE,如果用戶沒有權限訪問被引用的表(一個或多個)查詢

此外'#'不允許作爲列名。假設你打算這樣做,用反引號包圍這些名字。

進一步指出:

  1. MySQL擴展被廢棄在PHP 5.5.0,它是PHP 7.0.0中刪除。相反,應使用MySQLi或PDO_MySQL擴展
  2. 由於您在查詢中直接使用變量,請確保它是安全的。要麼逃避它,要麼使用準備好的語句
+0

好的。我會考慮你的觀點。謝謝 –

0

在這個或者任何類似的情況下,你不知道什麼是錯誤的查詢,你應該使用mysql_error()。它返回以前MySQL操作中的錯誤消息的文本。

更新基於您的評論

// First, you have to establish connection with database. 
mysql_connect($host, $username, $password) or die("Cannot connect to database"); 

// Next, select database that you want to work with. 
mysql_select_db($db_name) or die("cannot select database"); 

// Then, finally, start using it. 
$result = mysql_query("SELECT Lot# FROM data WHERE Lot#='$batch'") or die(mysql_error()); 

參考mysql_connectmysql_select_db的更多細節。

注意:這只是爲了快速調試的目的。不要在生產中使用。

+0

它給出了一條消息,「沒有選擇數據庫」 –

相關問題