2011-06-02 100 views
0

這段代碼不起作用。我已經收到了所有的迴應,並且它在網頁上顯示得很好,因爲所有數據都收集良好。什麼是不工作是插入到MySQL表中。MySQL不會插入某個字段

相同的查詢,沒有存檔插入,工作正常。但由於某些原因,MySQL不想插入我的存檔副本。檔案列存在,我已經加倍檢查和一切。檔案被創建爲存檔文本。爲什麼是這樣?解決方法?沒有錯誤被打印。

$url = $_GET["url"]; 

    $data = get_meta_tags($url); 

    echo $url = $url; 
    echo $tags = $data ['keywords'];  // php documentation 
    echo $desc = $data ['description']; // a php manual 
    $archive = strip_tags(file_get_contents($url)); 

    include("../library/config.php"); 
    mysql_query("INSERT INTO URLs(url, description, tags, archive) VALUES ('$url', '$desc', '$tags', '$archive')", $link); 
    echo mysql_error($link); 
+1

當你輸出時,'$ archive'包含什麼? – 2011-06-02 18:09:45

+0

'$ archive'的內容是什麼?它是否包含單引號字符?另外,你爲什麼不消毒輸入? – thetaiko 2011-06-02 18:11:03

+3

'mysql_real_escape_string' - 使用它 – Halcyon 2011-06-02 18:11:05

回答

0

我不確定爲什麼它不會給你一個錯誤,因爲它應該是!您正在獲取未知網址的全部內容,並試圖將其插入到表格列中。你應該先逃脫它...

$archive = mysql_real_escape_string(strip_tags(file_get_contents($url)), $link); 

基本上,這將根據您的表的編碼正確地轉義引號字符。如果mysql_connect從包含的../library/config.php文件中發生,那麼應該在該行代碼之後進行轉義,因爲它引用了$ link連接。

+0

好的,謝謝,我已經使用了你的編輯,甚至是一個替代形式,$ archive = mysqli_real_escape_string($ link,strip_tags(file_get_contents($ url)));,但它仍然沒有插入。 – Dylan 2011-06-02 18:21:21

+0

你有你的論點順序顛倒。 $ link應該是第二個參數。 – 2011-06-02 19:06:16

+0

實際上,我看到mysqli_real_escape_string有$ link作爲第一個參數。但是你使用的是程序化的mysql庫,而不是面向對象的庫,所以任何mysqli_都不行。 – 2011-06-02 19:09:43