Я получаю текст из базы данных в UTF-8 с помощью JSON, и он находится в файле прямо сейчас. При печати данных это:Все значения данных JSON не вставляются в базу данных MySQL (для символов UTF-8)
توحید در نگاه امام علی (علیه السلام)
Но когда я вставляю его в базе данных я получаю эту ошибку:
Insertion 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 near '�وحید در نگاه امام علی ' at line 1
Это мой код
<?php
header('Content-Type: application/json; charset=utf-8');
$con = mysql_connect("localhost","bbbbbbb","bbbbbbb");
mysql_select_db("db", $con);
if(file_exists('./json/file.json')){
$jsondata = file_get_contents('./json/file.json');
$data = json_decode($jsondata, true);
foreach ($data['nodes'] as $node){
$data_element = $node['node'];
$title = $data_element['title'];
$summary = $data_element['summary'];
$body = $data_element['body'];
$id = $data_element['id'];
print $title."\n";
$insert = "INSERT INTO main(title) VALUES ($title)";
mysql_query($insert) or die("Insertion Error: ". mysql_error());
}
}
else
print "File doesn't exist";
База данных и ее столбцов все utf8_general_ci
. Почему печатный текст не такой, как тот, который вставлен в базу данных?
Я не могу понять, как это может работать, если вы делаете этот запрос - «INSERT INTO main (title) VALUES (توحید در نگاه امام علی (علیه السلام))». Является ли он уязвимым для инъекций sql? – degr
'$ insert =" INSERT INTO main (title) VALUES ($ title) ";' просто не будет работать, потому что в '$ title' нет кавычек. –
@RickJames это именно то, что я пропустил – Drupalist