编辑/更新为代码:
这解决了我的问题。
$con = new PDO("mysql:host=$hostname;dbname=XXXXX;charset=utf8", $dbusername, $dbpassword, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
我正在尝试在数据库中输入一些西里尔文字。PHP脚本可以正常连接,并将数据添加到数据库中。问题是,一旦表单提交西里尔文字,就将其输入西里尔文字,就像这样“数据库”中的“西里尔文字”
任何帮助将是巨大的,谢谢。
数据库排序规则设置为“ utf8_general_ci”。php文件另存为“ uft8”(hostgator主机,如果有帮助)。
我在页面顶部。
<?php header("Content-Type: text/html; charset=utf-8"); ?>
我已将其添加到文件的标题中:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
与数据库的连接如下所示:
$con = new PDO("mysql:host=$hostname;dbname=XXXXX;charset=utf8", $dbusername, $dbpassword);
表格范例:
<form name="form" id="form" action="/form.php" method="post" accept-charset="utf-8">
<input type="hidden" name="foo" id="foo1" value="<?php echo $foo1; ?>"><?php echo $foo1; ?>
<input type="hidden" name="bar" id="bar1" value="<?php echo $bar1; ?>"><?php echo $bar1; ?>
<input type="submit" id="submit" value="submit"/>
* * php在页面上正确地回显了俄语文本。
我的PHP SQL插入示例:
$sql = "INSERT INTO foobar (foo1,bar1) VALUES (:foo1,:bar1)";
$q = $con->prepare($sql);
$q->execute(array(':foo1'=>$foo1,
':bar1'=>$bar1));
请尝试
$con->exec("SET NAMES = utf8");
在创建PDO对象之后。
通常,您的数据库以这种方式存储此内容。尝试检查您的MySQL客户端,它能否正确显示UTF-8数据库数据。
我知道某些版本的SQLYog无法实现,例如旧版本的PHPMyAdmin
我敢打赌,当您从脚本中获取数据时,您将收到适当的数据。如果不是,请尝试使用我已经说过的“设置名称”。
它可能会帮助您。
谢谢。
另外,看看PHP PDO:字符集,设置名称?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句