2010-12-19 98 views
0
<?php 

$url = $_GET['url']; 
if($url == "") { 
    die("Invalid Request! Missing Parameter 1!"); 
    exit; 
} 
$tags = get_meta_tags($url); 
$key = $tags['keywords']; 
$desc = $tags['description']; 

$con = mysql_connect('HOST', 'USER', 'PASS') or die(mysql_error()); 
mysql_select_db('zach_WebLock', $con) or die(mysql_error()); 
$query = "INSERT INTO `Keyword` (`Site`, `Keyword`, `Description`) VALUES ('".$site."', '".$key."', '".$desc."')"; 
mysql_query($query) or die(mysql_error()); 

echo '<b>Site: <u>'.$url.'</u></b>'; 
echo '<br>'; 
echo '<b>Description:</b>'; 
echo '<br>'; 
echo $desc; 
echo '<br><br>'; 

$keys = explode(',', $key); 
foreach($keys as $word) { 
    echo $word; 
    echo '<br>'; 
} 



?> 

此腳本提取了?url =變量中URL的關鍵字和描述。它顯示所有信息,不會引發任何錯誤,但不會將信息寫入數據庫。有任何想法嗎? (這個PHP腳本有什麼問題?

(我已經離開了mysql_real_escape_string()進行測試)

+0

你檢查了數據庫,看看是否有任何記錄被插入(檢查沒有空白字段被寫入)? – 2010-12-19 20:40:09

+0

我注意到你有一個fieldname等於Tablename,並且在那個時候都有''。也許MySQL感到困惑,並認爲他們指的是相同的?也許你可以重命名這個字段來排除這個?關鍵字 – Bazzz 2010-12-19 20:40:39

回答

3

你想插入未被定義的變量$site。也許你的意思是$url

如果不是的話,請提供更多的信息。你從mysql_error()

+0

謝謝!我已經多次閱讀過這個劇本,並沒有抓住它!它說我不能再接受這個答案10分鐘......但你的是我會接受的!謝謝! – 2010-12-19 20:43:34

+0

不客氣! – alexn 2010-12-19 20:54:03

0

您需要添加'以允許自動遞增爲在關鍵字表中的主鍵,這應該從發生的歷史停止MySQL錯誤。

得到任何輸出
$query = "INSERT INTO 'Keyword' VALUES ('','$site', '$key', '$desc')"; 
echo $query; 

如果這樣不能解決您的問題,建議您在運行腳本時查看查詢並查看任何空白值,並在必要時進行修復。如果仍有問題,請複製粘貼從腳本回顯的預期INSERT查詢,並在PhpMyAdmin中測試它,看看是否得到不同的結果(錯誤)。