php
  • mysql
  • 2013-04-28 43 views 0 likes 
    0

    嗨我想使用一段代碼,我以前用它來快速測試一個想法,但是我不斷收到以下錯誤。MYSQL num rows error

    警告:mysql_num_rows()預計參數1是資源,在

    $result = mysql_query("SELECT * FROM masterip_details WHERE timedate(datetime) = CURDATE() and ip_address='$ip_address"); 
    $num_rows = mysql_num_rows($result); 
    if($num_rows > 0) { 
    
    +1

    我說這話的時候從來沒聽說過,但是......你不能假定所有的查詢都成功了,否則就開始猜測。你需要做適當的錯誤檢查。在[mysql_query()](http://php.net/mysql_query)手冊頁中有一個示例。 – 2013-04-28 20:55:14

    回答

    0
    ("SELECT * FROM masterip_details WHERE timedate(datetime) = CURDATE() AND ip_address='$ip_address'") 
    

    你錯過了一個'你的SQL語句的結束,你應該寫‘和’大寫的,因爲所有其他的SQL關鍵字都寫大寫(不是必需的,但更易於閱讀)。

    也許失蹤的'會解決您的查詢。

    +2

    大寫'AND'並不是絕對必要的。 – 2013-04-28 20:55:25

    1

    這可能是因爲SQL請求失敗給定的boolean。嘗試添加下一個or die(mysql_error())您的mysql_query,像這樣:

    $result = mysql_query("SELECT * FROM masterip_details WHERE timedate(datetime) = CURDATE() and ip_address='$ip_address") or die(mysql_error()); 
    

    這應該輸出的錯誤,這樣就可以解決這個問題。

    編輯:我也可以給你一個什麼樣的錯誤可能的線索。在您的請求結束時,你不關閉單引號後$ip_address

    +0

    +1教魚如何! – BellevueBob 2013-04-28 20:53:12

    0

    還有就是在你的查詢sintax錯誤,你缺少一個報價$ip_address之後只是改變

    $result = mysql_query("SELECT * FROM masterip_details WHERE timedate(datetime) = CURDATE() and ip_address='$ip_address'"); 
    
    0

    試試這個。你缺少一個單引號...

    $result = mysql_query("SELECT * FROM masterip_details WHERE timedate(datetime) = CURDATE() and ip_address='$ip_address' "); 
    
    0

    你不斷收到這個錯誤,因爲你的查詢是錯誤的:

    mysql_query("SELECT * FROM masterip_details WHERE timedate(datetime) = CURDATE() and ip_address='$ip_address" 
    

    之後$ip_address

    0

    你缺少一個單引號缺失報價這裏and ip_address='$ip_address'")

    看一看這個: Why shouldn't I use mysql_* functions in PHP?

    相關問題