Я пытаюсь использовать php для выполнения запроса mysql, который содержит китайские символы. Следующий код работает на моей предыдущей машине.
$sql="
SELECT
部门,
编码
...
FROM pb ";
if ($conn->query($sql)){
echo "sueccess";
}
else{
echo "MySQL Query fail". $conn->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 ' 门, 大类 FROM pb' at line 20"
.
Когда я меняю запрос на все английские символы, у меня нет ошибки. Я думаю, что что-то не так с китайскими иероглифами, которые я использую.
Новая база данных является копией предыдущей, только когда я ее копировал, мне нужно создать новую базу данных MySQL и использовать запрос импорта для ввода данных. Я выбрал "utf8_general_ci" для старой машины и новой машины,
NOTED: запрос работает в базе данных напрямую, когда я отправляю запрос через phpMyAdmin. Но это не работает в php файле.
Поместите имена полей в обратные такты следующим образом:
SELECT
'部门',
'编码'
FROM ch;
образец
MariaDB [test]> select * from ch;
+----+-------------+--------+
| id | 部门 | 编码 |
+----+-------------+--------+
| 1 | my text | 1234 |
| 2 | second text | 5678 |
+----+-------------+--------+
2 rows in set (0.01 sec)
MariaDB [test]> SELECT
-> '部门',
-> '编码'
-> FROM ch;
+-------------+--------+
| 部门 | 编码 |
+-------------+--------+
| my text | 1234 |
| second text | 5678 |
+-------------+--------+
2 rows in set (0.00 sec)
MariaDB [test]>
образец 2
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "test";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="SELECT
id,
'部门',
'编码'
FROM ch;";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. "\t - Col1: " . $row["部门"]. "\tCol2: " . $row["编码"]. "\n";
}
} else {
echo "0 results";
}
$conn->close();
?>
Результат
$ php ch.php
id: 1 - Col1: my text Col2: 1234
id: 2 - Col1: second text Col2: 5678