2012-06-21 34 views
0

類似的問題,我已經問過很多次了。但是,由於我沒有在我面前提出的任何問題中找到解決辦法,所以我冒昧地再次提問。警告:mysql_query():7不是一個有效的MySQL鏈接資源

我的程序使用我製作的類來處理程序的所有數據庫連接。我以前使用過的幾個模塊使用同一個類時沒有失敗,但是當我選擇使用相同類來創建新模塊時,警告顯示爲:

警告:mysql_query():7不是有效的MySQL-Link 無論哪裏... 49行。

當我通過我所做的功能執行MySQL查詢時發生警告。功能如下 -

public function runquery($_query) 
{ 
    $result = mysql_query($_query,$this -> connection); //line 49 
    if (! $result) die(mysql_error()); 
    else return $result; 
} 

功能屬於一個名爲mysql類,它並沒有被篡改或所做的更改。所以這個函數應該在技術上按預期工作,因爲依賴於相同類的數據庫連接的每個其他模塊工作得很好。

查詢執行成功,但我設法更新表沒有問題(警告除外)。代碼在主程序其中runquery()函數被調用的塊如下 -

$phpmyadmin = new mysql(); 
$phpmyadmin->connect('localhost', 'root', ''); 
$phpmyadmin->setdb('test_db'); 
$result = $phpmyadmin->runquery($Query); 
unset($phpmyadmin); 

所以mysql的功能,工作一樣細如以往和查詢執行就好了。但警告顯示出我無法理解的原因。任何幫助?

回答

3

症狀表明數據庫連接已關閉或丟失。在代碼中尋找不需要的mysql_close()調用。此外,您可以使用以下功能來解決此問題:

  1. is_resource()get_resource_type()確認$this->connection是一個有效的數據類型。
  2. mysql_ping()找出數據庫連接是否存在。

如果這是一個罕見的問題,請將文件記錄到文件中,並等待它再次發生。

+0

'echo is_resource($ this - > connection);'給出1'echo get_resource_type($ this - > connection) ;'給mysql鏈接 –

+0

mysql_ping()然後給出警告:mysql_ping()[function.mysql-ping]:拒絕用戶ODBC'@'localhost'(使用密碼:NO)在C:\ xampp \第49行上的htdocs \ test_db \ cpanel \ include \ scripts \ php \ mysql.php 警告:mysql_ping()[function.mysql-ping]:無法在C:\ xampp \ htdocs \第49行的test_db \ cpanel \ include \ scripts \ php \ mysql.php 警告:mysql_query():7不是C:\ xampp \ htdocs \ test_db \ cpanel \ include \ scripts \ php中的有效MySQL鏈接資源\ mysql的。php在線50 用戶'ODBC'@'localhost'拒絕訪問(使用密碼:否)' –

+0

您是否擁有一個名爲「ODBC」的無密碼用戶? *(請使用'var_dump()'檢查變量;'echo'將所有內容都轉換爲字符串)。* –

0

不應該有空格。

$result = mysql_query($_query,$this->connection); 
+0

它和空格一樣好。但即使沒有他們,警告也不會消失。我認爲問題在別處。 –

+0

@SamikSengupta var_dump($ this-> connection);'?的結果是什麼? – xdazz

+0

'var_dump($ this-> connection);'給出'類型(mysql鏈接)的資源(7)' –

相關問題