-3

我有输出网站排名的课程

$urlInfo->getUrlInfo();

这是用于排名的 alexa amazon aws。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.

有什么想法吗?

4

1 回答 1

1

尝试,而不是在$urlinfo->geturlinfo()上面再做一个准备好的声明,命名为$url = $urlinfo->geturlinfo(),然后在声明中'$url'这样:

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

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

最后,您实际上有一个名为 rank 的表吗?因为听起来您将其称为列/行。

我只是在完成自己的思考过程,我希望这有效/有帮助=]


在评论中我说你应该这样做->

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

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



虽然我会查看下面的链接,SQL Injection但它有助于保护您的应用程序免受黑客攻击。

SQL 注入:信息
SQL 注入:预防

于 2012-11-15T10:12:51.460 回答