将类函数插入mysql

时间:2012-11-14 15:12:24

标签: php mysql

我有课程输出网站排名

$urlInfo->getUrlInfo();

这是alexa amazon的排名。 out将是域名的排名。我需要将等级插入数据库,但我不能,除非我将其设置为变量。

我该怎么办?

我试过了:

 mysql_query("INSERT INTO rank (date, domain, rank) VALUES ('$date','$domain','".$urlInfo->getUrlInfo()."')")

但等级为空。

这就是geturlinfo函数的样子

    public function getUrlInfo() {
    $queryParams = $this->buildQueryParams();
    $sig = $this->generateSignature($queryParams);
    $url = 'http://' . self::$ServiceHost . '/?' . $queryParams . 
        '&Signature=' . $sig;
    $ret = self::makeRequest($url);
    //echo "\nResults for " . $this->site .":\n\n <br>";
    self::parseResponse($ret);
}

然后脚本将函数数组定义为结果

      public static function parseResponse($response) {
        $xml = new SimpleXMLElement($response,null,false,
                                    'http://awis.amazonaws.com/doc/2005-07-11');
        if($xml->count() && $xml->Response->TrafficHistoryResult->Alexa->count()) {
            $info = $xml->Response->TrafficHistoryResult->Alexa;
            $nice_array = array(

//                 'City'           => $info->ContactInfo->PhysicalAddress->City,
//                 'State'          => $info->ContactInfo->PhysicalAddress->State,
//                 'Postal Code'    => $info->ContactInfo->PhysicalAddress->PostalCode,
//                 'Country'        => $info->ContactInfo->PhysicalAddress->Country,
//                 'Links In Count' => $info->ContentData->LinksInCount,
//                 'Rank'           => $info->TrafficData->Rank,
//                 'Usage'          => $info->TrafficData->UsageStatistics
                    'Rank'          => $info->TrafficHistory->HistoricalData->Data->Rank

            );
        }

                   foreach($nice_array as $k => $v) 
                    {
                        echo $k.': ' . $v ."\n <br>";
                    }

    }

更新:这有效。我现在能够把它放在一个href = XX但仍然更新到mysql显示空白

    $accessKeyId1 = "XXX";
    $secretAccessKey1 = "XXX";
    $site1 = $_GET['domain'];
    $StartNum1 = $_GET['currentdate']; 

    //$url = $urlInfo->getUrlInfo();
    //echo "URL : ".$url;  

    function Rank($accessKeyId, $secretAccessKey, $site, $StartNum)
    {$urlInfo = new UrlInfo($accessKeyId, $secretAccessKey, $site, $StartNum); $urlInfo->getUrlInfo();}
    echo "test url:<a href='/";
    $test = Rank($accessKeyId1, $secretAccessKey1, $site1, $StartNum1);

    //$testing = mysql_query("UPDATE rank SET rank = '".Rank($accessKeyId1, $secretAccessKey1, $site1, $StartNum1)."' WHERE domain = '4shared.com'") or die(mysql_error());
echo $test."'>test</a>";

对于UPDATE我尝试了Rank($ accessKeyId1,$ secretAccessKey1,$ site1,$ StartNum1)以及$ test。

来自这里的任何想法?

1 个答案:

答案 0 :(得分:1)

尝试,而不是$urlinfo->geturlinfo()将上面的另一个预备语句命名为$url = $urlinfo->geturlinfo()之类的内容,然后在语句'$url'中添加mysql_query("INSERT INTO rank (date, domain, rank) VALUES ('$date','$domain','$url')");

$rank = $this->url->getNewValue();
$url = $this->$rank->getUrlInfo();

mysql_query("INSERT INTO rank (date, domain, rank) VALUES ('$date','$domain','$url')");

我认为你遇到的主要问题是引号,它将语句分成两部分,这意味着语句不完整(不要引用我的话)

最后你真的有一张名为rank的表吗?因为听起来你称之为列/行。

我只是通过自己的思维过程,我希望这有效/帮助=]


在评论中我说你应该这样做 - &gt;

SQL Injection



虽然我会查看下面有关{{1}}的链接,但它有助于保护您的应用免受黑客攻击。

SQL Injection: Information
SQL Injection: Prevention