无法从sql数据库中删除

时间:2012-01-06 12:12:16

标签: php mysql

我为我的网站设计了一个url加载器,它工作正常,但是在加载后无法删除url的问题很少。

<?php
// set time 1000
set_time_limit(1000);

// connect to db
include ("../../config.php"); 

// select data from database target domain and T2 table
$result = mysql_query( "SELECT * FROM domain" ) or die("SELECT Error: ".mysql_error());
$resultx = mysql_query( "SELECT * FROM worth" ) or die("SELECT Error: ".mysql_error());
$num_rows = mysql_query($result);
$num_rowsx = mysql_query($resultx);

// fetching data 
while ($get_infox = mysql_fetch_assoc($resultx) && $get_info = mysql_fetch_assoc($result))
{
    $domax="www.".$get_infox[domain];
    $doma=$get_info[domain]; 

    if ($doma != $domax[domain])
    {
        // load urls
        $url="http://www.w3db.org/".$doma."";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 15);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $index=curl_exec($ch);
        $error=curl_error($ch); 
        curl_close($ch); 
        // deleting current loaded url
        echo "url loaded and deleted ".$url."<br />";
        mysql_query("DELETE FROM domain WHERE domain=".$doma.""); // problem here
    }
    else
    {
        echo "url skiped and deleted ".$url."<br />";
        mysql_query("DELETE FROM domain WHERE domain=".$doma.""); // problem here
    }
}

mysql_close($con);
?>

我不知道为什么它不能删除,代码没问题,没有错误。我不知道为什么,请帮忙。

进行测试

表1 ::具有列域的域

表2 ::具有列域的T1

任务

从(表1)域中获取url,与(表2)域url进行比较。如果不匹配使用curl获取然后删除,则跳过加载URL并删除它。

提取了网址,但最后没有删除。

2 个答案:

答案 0 :(得分:2)

查询很可能失败,因为$doma是一个不在引号内的字符串,也就是说,当... WHERE domain=foo ... WHERE domain='foo'时,您的查询为mysql_query("DELETE FROM domain WHERE domain='".$doma."'") or die( mysql_error() );

mysql_error()

(请记住{{1}}部分,它会帮助您稍后调试很多问题。)

答案 1 :(得分:0)

你的查询可能缺少$ doma周围的单引号...试试这个......

 "DELETE FROM domain WHERE domain='".$doma."'"

 mysql_query("DELETE FROM domain WHERE domain='".$doma."'"); // problem here

假设$ doma是一个字符串..