【发布时间】:2023-03-25 09:50:01
【问题描述】:
我使用 JSON 从 UTF-8 数据库中获取文本,它现在在一个文件中。当我打印数据时:
توحید در نگاه امام علی (علیه السلام)
但是当我将它插入数据库时,我得到了这个错误:
插入错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 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 注入的影响?
-
$insert = "INSERT INTO main(title) VALUES ($title)";根本行不通——因为$title周围没有引号。 -
@RickJames 这正是我错过的
标签: php mysql json database utf-8