2011-06-02 98 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