从脚本中在db中插入UTF8字符时出现问题

时间:2011-08-09 16:36:34

标签: php mysql utf-8 insert

我有一个小脚本,通过GET接收一些数据并在数据库中插入数据。我的问题是发送一些UTF-8字符。 scritp接收它们,但以奇怪的方式插入它们。我在我的页面中打印了查询,用phpmyadmin执行它并且正常工作。所以,我的问题是通过我的脚本执行查询(如果我用这些字符执行常量查询,它不起作用)。通过邮寄发送字符是否可以解决问题?

谢谢

3 个答案:

答案 0 :(得分:1)

试试这个:

mysql_set_charset('utf8');

答案 1 :(得分:0)

您的整个设置必须是UTF-8。这意味着您的网页,PHP,数据库连接和数据库表都必须采用UTF-8模式。鉴于它在管理页面中工作而不是通过脚本,我猜它是你的数据库连接。在进行插入查询之前尝试执行set names='utf-8',看看是否可以解决问题。如果是这样,那么你的数据库连接正在使用一些OTHER字符集并在PHP->数据库中修改你的文本。

答案 2 :(得分:0)

在查询之前在php文件中添加:

mysql_query('SET NAMES utf8');

例如:

//DB connection
$con = mysql_connect('localhost', 'root', '');//db details
if (!$con){
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydatabase", $con);//DB name
mysql_query('SET NAMES utf8');
//query
$sql="SELECT * FROM users WHERE uid=".$user_id;// your query
$result=mysql_query($sql);