一次偶然的機會,看到自己寫的**顯示了乙個錯誤,大概意思:錯誤位置發生在mysql_fetch_array($results,mysql_assoc) ,這裡的$results不是合法的mysql資源集。
當時第一反應,以為是資料庫連線錯誤了。導致,根本沒有查詢到資料。就無法使用$results。因為經常碰到類似的問題和錯誤提示。
仔細想了想,分析了一下:一般如果,遇到資料庫連線出錯的話,在這裡」$conn = mysql_connect「就會出現錯誤了。此時報的錯誤會指向$conn,大致說:不是乙個合法的連線標識。
想到$rusults =mysql_query($sql,$conn);返回的結果是乙個」資源識別符號「。所以想,會不會是因為這裡的查詢,表中不存在資料,返回的結果是空的原因呢?
我故意讓表中不存在任何資料,那麼查詢不出任何結果。使用var_dump輸出$rusults。得到true。
我把表刪掉後,mysql_query返回的結果是false。
所以,我學到兩點,
1. 在使用資源標識之前,要判斷是否存在。**類似:
if($results)
}else{
//資料表不存在
2.為false可以作為一種可能,資料表不存在
根據php手冊。mysql_query有以下幾種情況會返回false:
》查詢語句出錯。就是sql語法方面的錯誤導致。比如查詢的時候不存在某個字段。表不存在,也屬於sql出錯。
》沒有執行該操作的許可權
Hibernate 報資料表不存在
報錯資訊 org.hibernate.exception.sqlgrammarexception could not execute statement caused by com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception table...
遠端mysql時提示表不存在 表不存在MySQL
我已按照所有步驟操作,一切正常,直到我完成步驟 在命令列中輸入以下命令 create database arc logon create database arc characters create database arc world 這不是確切的地點,但在導遊要求我之後不久 mysql u ro...
不存在 MySQL資料存在就更新,不存在就新增
做業務系統,經常遇到初始化一些資料,但如果每次都檢查就比較麻煩,下面的方法可以解決類似的問題。使用on duplicate插入的字段中必須有唯一約束,否則會出現重複值 目前表中沒有唯一約束,執行兩遍插入語句,會出現兩個重複資料,id為49的jerry和id為50的jerry,並沒有達到修改的目的,將...