【发布时间】:2011-11-19 20:53:17
【问题描述】:
我正在尝试使用 PHP / MySQL 创建一些页面。
我的数据库表设置为utf8_general_ci,表列也是如此。如果我使用 phpmyadmin 并手动插入一个页面,我可以输入我想要的所有€,它们将作为€插入。我也可以完美展现。
但是,当我尝试使用 mysqli 插入页面时,€ 将转换为 €
我没有进行任何形式的转换。如果我在即将插入页面之前回显页面列字段,它仍然会正确显示€。
代码:
$connection = new mysqli('localhost', 'root', '', 'some_db');
$query = 'INSERT INTO page (ID, title, content) VALUES (?, ?, ?)';
$params = array('iss', 'NULL', 'test title', '€ some content');
$stmt = $connection->prepare($query);
call_user_func_array(array($stmt, 'bind_param'), by_ref($params));
$stmt->execute();
by_ref 函数只做一个引用,没有别的。一切正常,除了它没有正确插入€时让我头疼。也许它不是 bind_param,而是别的东西。不过我想知道答案!
更新:
感谢 Digital Precision,我发现我必须确保连接将使用“utf8”。但是,我只需要在使用 INSERT 或 UPDATE 时设置它,因为 SELECT 确实在 utf8 中返回了结果。希望这可以帮助某人
【问题讨论】: