2010-02-06 57 views
0

可能重複:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result警告:mysql_error():提供的參數不是一個有效的MySQL-Link的資源

 $err = mysql_query("INSERT INTO tridy (id,NazevTridy,url) VALUES (
      '$i', 
      '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->outertext', 
      '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->href')"); 
     mysql_error($err); // line 97 

警告:mysql_error():提供的參數在線97上的/hosting/www/cran-web.com/www/rozvrh/engine.php中不是有效的MySQL-Link資源

---線2-6:

$username="*****.com"; 
$password="*********"; 
$database="*********"; 
mysql_connect('127.0.0.1', $username, $password) or die('Could not connect'.mysql_error()); 
mysql_select_db($database) or die("Cannot select db."); 

當我嘗試執行我查詢我得到這個錯誤。你能告訴錯誤信息是什麼意思,以及如何解決它?

+0

你應該真的保存由'mysql_connect'返回的mysql連接資源。 – poke 2010-02-06 17:58:55

+1

我知道你希望我們做什麼很明顯,但你至少可以提出一個適當的問題。 – 2010-02-06 17:59:20

回答

0

mysql_error()需要「鏈接資源」並且沒有「結果資源」。特正確的方法是這樣的:

$username="*****.com"; 
$password="*********"; 
$database="*********"; 
$connection = mysql_connect('127.0.0.1', $username, $password) or die('Could not connect'.mysql_error()); 
mysql_select_db($database, $connection) or die("Cannot select db."); 


$err = mysql_query("INSERT INTO tridy (id,NazevTridy,url) VALUES (
     '$i', 
     '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->outertext', 
     '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->href')", $connection); 
mysql_error($connection); // line 97 

心靈使用$connection。威樂$連接隨處丟棄在

mysql_error(); 

它使用最後一個打開的連接或默認情況下打開一個新的。雖然取決於默認連接是不好的。您可能還想查看mysqliPDO作爲與MySQL交談的替代方法。

1

mysql_error($ err);刪除論點! 它需要鏈接到資源而不是錯誤號碼。

鏈接是用來識別不同的連接(你可以檢索一個使用mysql_connect)閱讀這個如果你需要更多。

0

您正在向mysql_error傳遞查詢,您需要傳遞鏈接標識符。

0

另外請注意,mysql_query()處理INSERT返回true成功和false失敗。

因此命名變量$err在某種程度上具有誤導性,if($err)意味着沒有錯誤發生,反之亦然。

更好:

$success = mysq_query("INSERT...."); 

if(!$success) { 
    // use of $connection is pointed to in other answers 
    $error_msg = mysql_error($connection); 

    // so some error handling 
} 

關於mysql_error()

參數:MySQL連接。如果沒有指定連接標識,假設

和返回值由mysql_connect()打開了最後一個環節:

返回上一個MySQL的函數的錯誤文本,或「」(空字符串)如果沒有發生錯誤。

所以你也東西與返回值。只需撥打mysql_error()就沒用了!

相關問題