遇到mysql数据表不存在的问题
一次偶然的機會,看到自己寫的代碼顯示了一個錯誤,大概意思:錯誤位置發生在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呢?資源標識符跟有沒有數據是沒有關系的。
?
我把表刪掉后,mysql_query返回的結果是false。
?
所以,我學到兩點,
1. 在使用資源標識之前,要判斷是否存在。代碼類似:
?
if($results)
{
?
}else{
//數據表不存在
?
}
2.為false可以作為一種可能,數據表不存在
根據php手冊。mysql_query有以下幾種情況會返回false:
?》查詢語句出錯。就是sql語法方面的錯誤導致。比如查詢的時候不存在某個字段。表不存在,也屬于sql出錯。
》沒有執行該操作的權限
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的遇到mysql数据表不存在的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MS CRM 2011 RC中的新特性(
- 下一篇: 利用PHP的Popen实现RRDTOOL