2011-12-15 2 views
1

Я получил ответ от опекуна api, которому удалось загрузить его в переменную, я пытаюсь поместить содержимое в соответствующую таблицу базы данных, но при этом возникает ошибка ниже:Ошибка синтаксиса SQL при использовании api с PHP

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, "http://content.guardianapis.com/?format=json&show-  fields=all&show-related=true&order-by=newest&show-most-viewed=true&api- key=srty8vfmpgjhjakk4k6edbjb"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_ENCODING, "gzip"); 
$response_api = curl_exec($curl); 
curl_close($curl); 

require_once 'Zend/Json.php'; 
$val = Zend_Json::decode($response_api); 
foreach ($val['response']['mostViewed'] as $result) { 
$title = $result['webTitle']; 
$url = $result['webUrl']; 
$body_text = $result['fields']['body']; 
$title = utf8_decode($title); 
$body_text = utf8_decode($body_text); 


$sql="INSERT INTO news_data (title, content) 
VALUES 
('$title','$body_text')"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
} 
} 

mysql_close($con); 

?> 

Am Я получаю эту ошибку, потому что есть странные символы в статье, что я пытаюсь загрузить в определенном переменные, а затем на мою базу данных?

Благодаря

JB

+1

Возможный дубликат [mysql синтаксическая ошибка] (http://stackoverflow.com/questions/6734004/mysql-syntax-error) – mario

ответ

1

Попробуйте

$sql="INSERT INTO `news_data` (`title`, `content`) 
VALUES 
('".mysql_real_escape_string($title)."','".mysql_real_escape_string($body_text)."')"; 
1

Если вы используете устаревшую расширения MySQL и конкатенации, то вам также необходимо применить mysql_real_escape_string() на каждой строковой переменной. Это $title и $body_text в вашем случае. В противном случае одна одиночная кавычка сделает ваш запрос INSERT непогрешимым для сервера MySQL. (И potential security issues, bla bla ...)

Смежные вопросы