我有这个代码用于连接PDO:
$conn = new PDO('mysql:host = localhost; dbname = DataBase', 'kkk', 'kkkkkk');
if ( $conn ) { echo 'Connect Shodee'; }
} catch (PDOException $e) {
$e->error();
}
这行用于INSERT值:
function InsertFileToDb($filename, $filetype, $recieve, $update, $from, $comment, $file) {
$sql="INSERT INTO `DataBase`.`assistance`(`filename`,`filetype`,`recieve`,`update`,`from`,`comment`,`file`) VALUES(:filename, :filetype, :recieve, :update, :from, :comment, :file)";
$prepare = $conn->prepare($sql);
$result = $prepare->execute(array(
':filename'=>$filename, ':filetype'=>$filetype, ':recieve'=>$recieve,
':update'=>$update, ':from'=>$from, ':comment'=>$comment, ':file'=>$file));
但是当我从我的数据库中获取数据时,像$from
这样的UTF-8编码值就像0o_xd7sjnc,x
...
你能告诉我什么是错的吗?
我检查了HERE和HERE以及其他一些帖子,但没有找到合适的答案......
答案 0 :(得分:-1)
PDO和mysql都没有改变你的数据 所以,它在其他地方被改变了。
顺便说一句,你可以用更少的方式编写你的函数
function InsertFileToDb($filename, $filetype, $recieve, $update, $from, $comment, $file) {
$sql = "INSERT INTO assistance VALUES(NULL, ?, ?, ?, ?, ?, ?, ?)";
$conn->prepare($sql)->execute(func_get_args());
}
答案 1 :(得分:-1)
也许这是一个编码问题,所以你可以尝试这些步骤,看看会发生什么:
添加:$ conn = new PDO('mysql:host = localhost; dbname = Database; charset = utf8 ','kkk','kkkkkk');
确保您的数据库表格为utf8_unicode_ci
同时将此内容添加到<head>
代码中的html页面:<meta http-equiv="Content-Type" content="text/html; charset=utf-8">