2010-12-19 97 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中测试它,看看是否得到不同的结果(错误)。