Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将类函数插入mysql_Php_Mysql - Fatal编程技术网

Php 将类函数插入mysql

Php 将类函数插入mysql,php,mysql,Php,Mysql,我有一个输出网站排名的类 $urlInfo->getUrlInfo(); 这是alexa亚马逊aws的排名。输出将是域的级别。我需要将秩插入到db中,但除非将其设置为变量,否则无法插入 我能做什么 我试过: mysql_query("INSERT INTO rank (date, domain, rank) VALUES ('$date','$domain','".$urlInfo->getUrlInfo()."')") 但排名是空的 这就是geturlinfo函数的外观

我有一个输出网站排名的类

$urlInfo->getUrlInfo();
这是alexa亚马逊aws的排名。输出将是域的级别。我需要将秩插入到db中,但除非将其设置为变量,否则无法插入

我能做什么

我试过:

 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>";
                    }

    }
更新:这是有效的。我现在可以把它放在a 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>";
对于更新,我尝试了排名$accessKeyId1、$secretAccessKey1、$site1、$StartNum1和$test

有什么想法吗?

试试,不要用$urlinfo->geturlinfo在上面做另一个预先准备好的语句,比如$url=$urlinfo->geturlinfo,然后在语句中放上“$url”,这样:

我认为你的主要问题是引号,它把陈述分成两部分,这意味着陈述不完整,不要引用我的话

最后,你真的有一个叫做rank的表吗?因为这听起来像是在叫它列/行

我只是通过自己的思维过程工作,我希望这能起作用/有帮助=]

在评论中,我说你应该做的是->

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

mysql_query("INSERT INTO rank (date, domain, rank) VALUES ('$date','$domain','$url')");
虽然我想看看下面关于SQL注入的链接,但它将帮助保护您的应用程序免受黑客攻击


您的SQL查询是什么?您不需要将其分配给变量。您可能希望添加getUrlInfo函数的详细信息,以及尝试如何将其添加到数据库以及实际错误是什么。urlInfo->getUrlInfo是否回显到浏览器?如果是这样,则需要修改类函数。如果没有,您可以简单地将该函数用作查询的一部分。。。插入表col1,col2值'$urlInfo->getUrlInfo.,'var2′;“这就是为什么有些动物吃它们的幼崽。”我试过了。但是秩列显示为空。这来自aws alexa示例。该类只是创建一个输出url的xml结果的类。我不明白。谢谢你的回复。我几乎什么都试过了。我已经像你说的那样定义了它,但它仍然是空的。它唯一一次输出排名是在我使用$urlinfo->geturlinfo时。我尝试了$urlinfo->nice_数组和$urlinfo->parseResponse,但我不明白为什么它不允许我存储数据。我甚至不能把它放在一个url中,所以也不起作用。你可以试试输入框,说它的命名url试试这个$rank=url->getNewValue;然后$url=$rank->geturlinfo,然后在语句$url中再试一次。我试图记下我的思考过程,所以我不确定它是否正确。您使用的列类型是什么?我是否应该在名为getNewValue的类中创建一个函数?所以创建一个函数getNewValue{$url=$UrlInfo->getUrlInfo;},然后调用它?谢谢你的帮助!我现在至少可以进入一个URL了。请看我的更新。
$rank = $this->url->getNewValue();
$url = $this->$rank->getUrlInfo();

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