我有课程输出网站排名
$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。
来自这里的任何想法?
答案 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}}的链接,但它有助于保护您的应用免受黑客攻击。