【问题标题】:SQL returns empty tuple even when data is available in database即使数据库中有数据,SQL 也会返回空元组
【发布时间】:2025-11-24 07:15:01
【问题描述】:

我使用 XML 文件通过 php 将数据加载到数据库中。因为 xml 文件有很多 utf8 字符,所以我使用以下 SQl 命令来更改我的表以接受 UTF 8 字符:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

我成功输入了数据,但是数据库中的名称以一种奇怪的方式显示。示例:

Jääskeläinen shows up as Jääskeläinen

另外,对于像 Jones 这样的普通名称,如果我使用查询 select 'name' from players where 'name' LIKE '%n%';,结果集是 0,这是不正确的。我只能通过pid 搜索例如:如果我使用查询select 'name' from 'players' wherepid= 453;,我会得到结果Jones

有人可以向我解释为什么我会收到这个错误吗?

XML 文件如下所示:

<?xml version="1.0" encoding ="utf8"?>
<pages>
<link>
<name> Cech </name>
<club> Chelsea </club>
<points> 49 </points>
</link>

加载XML文件并将数据输入数据库的php代码是here

【问题讨论】:

  • 希望有人回应.....

标签: php mysql sql xml


【解决方案1】:

我通过 php 解决了这个问题,因为基本上我是通过 php 检索和操作数据。在我使用以下方法在我的 php 文件中设置连接之后:

$conn = mysql_connect($dbhost, $dbuser, $dbpass);

把下面的。

  mysql_set_charset('ISO-8859-1',$conn);

注意字符集设置为ISO-8859-1,而不是utf8

【讨论】:

    最近更新 更多