即使数据在数据库中可用,SQL也会返回空元组

时间:2013-12-08 21:46:37

标签: php mysql sql xml

我使用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 ex进行搜索:如果我使用查询Jones pid select 'name' from 'players' where

,我会得到结果= 453;

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

XML文件如下所示:

<?xml version="1.0" encoding ="utf8"?>
<pages>
<link>
<name> Cech </name>
<club> Chelsea </club>
<points> 49 </points>
</link>
用于加载XML文件并将数据输入数据库的php代码是here

1 个答案:

答案 0 :(得分:2)

我通过php解决了这个问题,因为基本上我是通过php检索和操作数据。我使用:

在我的php文件中设置连接之后
$conn = mysql_connect($dbhost, $dbuser, $dbpass);

提出以下内容。

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

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