Php 未定义变量错误

Php 未定义变量错误,php,mysql,Php,Mysql,我正在尝试将AmazonAPI集成到我的网站中,到目前为止,我已经设法让它导航到正确的xml部分并将其作为变量存储,但是我现在尝试将这个变量插入我的mysql数据库,它给了我这个错误 注意:未定义变量:sql\u选择in 致命错误:对非对象调用成员函数query() 我做错了什么 完整代码 define('INCLUDED', 1); error_reporting(E_ALL); ini_set("display_errors", 1); $AWS_ACCESS_KEY_ID = "HID

我正在尝试将AmazonAPI集成到我的网站中,到目前为止,我已经设法让它导航到正确的xml部分并将其作为变量存储,但是我现在尝试将这个变量插入我的mysql数据库,它给了我这个错误

注意:未定义变量:sql\u选择in 致命错误:对非对象调用成员函数query()

我做错了什么

完整代码

define('INCLUDED', 1);
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
$AWS_ACCESS_KEY_ID = "HIDDENFORPRIVACY";
$AWS_SECRET_ACCESS_KEY = "HIDDENFORPRIVACY";

$base_url = "http://free.apisigning.com/onca/xml?";
$url_params = array('Operation'=>"ItemLookup",'Service'=>"AWSECommerceService",
 'AWSAccessKeyId'=>$AWS_ACCESS_KEY_ID,'AssociateTag'=>"HIDDENFORPRIVACY",
 'Version'=>"2011-08-01",'Availability'=>"Available",'ItemId'=>"0273702440",
 'ItemPage'=>"1",'ResponseGroup'=>"EditorialReview", 'Title'=>"Accounting and Finance for Non-Specialists 5th Edition");

// Add the Timestamp
$url_params['Timestamp'] = gmdate("Y-m-d\TH:i:s.\\0\\0\\0\\Z", time());

// Sort the URL parameters
$url_parts = array();
foreach(array_keys($url_params) as $key)
    $url_parts[] = $key."=".$url_params[$key];
sort($url_parts);

// Construct the string to sign
//$string_to_sign = "GET\nhttp://free.apisigning.com/".implode("&",$url_parts);
//$string_to_sign = str_replace('+','%20',$string_to_sign);
//$string_to_sign = str_replace(':','%3A',$string_to_sign);
//$string_to_sign = str_replace(';',urlencode(';'),$string_to_sign);

// Sign the request
//$signature = hash_hmac("sha256",$string_to_sign,$AWS_SECRET_ACCESS_KEY,TRUE);

// Base64 encode the signature and make it URL safe
//$signature = base64_encode($signature);
//$signature = str_replace('+','%2B',$signature);
//$signature = str_replace('=','%3D',$signature);
//$signature = str_replace(';',urlencode(';'),$string_to_sign);
$url_string = implode("&",$url_parts);
$url = $base_url.$url_string;
//print $url;


$ch = curl_init();                   //this part we set up curl 
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$xml_response = curl_exec($ch);
curl_close($ch);
header('Content-type: application/xml');  //specify as xml to not display as one long string
echo $xml_response; 

$xml = new SimpleXMLElement($xml_response);  //time to echo back the correct piece of data

$editorialReview = $xml->Items->Item->EditorialReviews->EditorialReview->Content;

$variable = '<p>Editorial review: '.html_entity_decode($editorialReview).'</p>'."\n";
echo $variable;

$sql_select = mysql_query("INSERT INTO " . DB_PREFIX . "auctions
            (amazon_description) VALUES
            ('" . $variable . "')");
            echo ($sql_select);
define('INCLUDED',1);
错误报告(E_全部);
ini设置(“显示错误”,1);
$AWS\u ACCESS\u KEY\u ID=“HIDDENFORPRIVACY”;
$AWS\u SECRET\u ACCESS\u KEY=“HIDDENFORPRIVACY”;
$base_url=”http://free.apisigning.com/onca/xml?";
$url_params=array('Operation'=>“ItemLookup”、'Service'=>“AWSECommerceService”,
“AWSAccessKeyId”=>$AWS\u访问\u密钥\u ID,'AssociateTag'=>“隐藏隐私”,
“版本”=>“2011-08-01”、“可用性”=>“可用性”、“项目ID”=>“0273702440”,
“项目页面”=>“1”、“响应组”=>“编辑评论”、“标题”=>“非专家会计和财务第五版”);
//添加时间戳
$url_params['Timestamp']=gmdate(“Y-m-d\TH:i:s.\\0\\0\\Z”,time());
//对URL参数进行排序
$url_parts=array();
foreach(数组_键($url_参数)作为$key)
$url\u parts[]=$key.“=”$url\u参数[$key];
排序($url\u部分);
//构造要签名的字符串
//$string\u to\u sign=“获取\nhttp://free.apisigning.com/“.内爆(&,$url_部分);
//$string_to_sign=str_replace('+','%20',$string_to_sign);
//$string_to_sign=str_replace(“:”、“%3A”、$string_to_sign);
//$string_to_sign=str_replace(“;”,urlencode(“;”),$string_to_sign);
//签署请求
//$signature=hash_hmac(“sha256”,$string_to_sign,$AWS_SECRET_ACCESS_KEY,TRUE);
//Base64对签名进行编码并使其URL安全
//$signature=base64_编码($signature);
//$signature=str_replace('+','%2B',$signature);
//$signature=str_replace('=','%3D',$signature);
//$signature=str_replace(“;”,urlencode(“;”),$string_to_sign);
$url\u string=内爆(&,$url\u部分);
$url=$base\u url.$url\u字符串;
//打印$url;
$ch=curl_init()//这部分我们设置了curl
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_超时,15);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
$xml\u response=curl\u exec($ch);
卷曲关闭($ch);
标题('Content-type:application/xml')//指定为xml以不显示为一个长字符串
echo$xml_响应;
$xml=新的simplexmlement($xml\u响应)//是时候回显正确的数据了
$editorialReview=$xml->Items->Item->EditorialReviews->editorialReview->Content;
$variable='editorialReview:'.html\u entity\u decode($editorialReview)。'

。“\n”; echo$变量; $sql\u select=mysql\u查询(“插入到“.DB\u前缀”中 (amazon_描述)值 (“$变量。”)”; echo($sql\u select);
这不会发送错误,但mysql数据库没有显示任何更改。

错误“Undefined variable”表示您尚未初始化对象

从您打印的代码来看,$sql_select应该是一个包含select语句的字符串

所以你需要做一些类似的事情:

$variable = '<p>Editorial review: '.html_entity_decode($editorialReview).'</p>'."\n";
echo $variable;

$sql_select .= "INSERT INTO " . DB_PREFIX . "auctions
            (amazon_description) VALUES
            ('" . $variable . "')";

$DB_object->query($sql_select);
$variable='编辑评论:'.html\u实体\u解码($editorialReview)。'

“\n”; echo$变量; $sql_select.=“插入”。DB_前缀。“拍卖 (amazon_描述)值 (“$变量。”)”; $DB\u object->query($sql\u select);

请发布整个代码,以便准确找到解决方案。

什么是
$sql\u select
?它是从哪里来的?您的代码没有显示这一点。请尝试以下操作:$sql\u select->query(“插入到{DB\u PREFIX}拍卖(amazon\u description)值(“{$variable}”)”;很好的洞…@zi42编辑我正在使用amazon api,所以idk如果这仍然是一个漏洞,因为它只会由服务器运行,因为我不确定整个代码,并且可能会有预SQL注释和HINTS或其他以前的SQL语句被批量执行。@JackBrown我已经编辑了我的帖子,以包含整个代码,当前代码没有产生错误,但是mysql数据库没有正确更新。这是一个不同的问题@弗兰克,请看一眼