我无法正确地在数据库中插入土耳其语字符。如果我手动在数据库中更改它们,则可以在页面上正确查看它们。奇怪的是:我可以使用“编辑页面”功能编辑文本,然后将它们正确插入数据库中!为了更清楚:
create_album函数(不能正确插入土耳其语字符)
function create_album($album_header, $album_name, $album_place,) {
$album_header = mysql_real_escape_string(htmlentities($album_header));
$album_name = mysql_real_escape_string(htmlentities($album_name));
$album_place = mysql_real_escape_string(htmlentities($album_place));
mysql_query("INSERT INTO `albums` VALUES ('','".$_SESSION['user_id']."',
UNIX_TIMESTAMP(), '$album_status Beklemede', '$album_header', '$album_name',
'$album_place')");
mkdir('uploads/'.mysql_insert_id(), 0744);
mkdir('uploads/thumbs/'.mysql_insert_id(), 0744);
}
edit_album函数(正确编辑和插入土耳其语字符)
function edit_album($album_id, $album_header, $album_name, $album_place) {
$album_id = (int)$album_id;
$album_header = mysql_real_escape_string($album_header);
$album_name = mysql_real_escape_string($album_name);
$album_place = mysql_real_escape_string($album_place);
mysql_query("UPDATE `albums` SET `header`='$album_header', `name`='$album_name',
`place`='$album_place' WHERE `album_id`=$album_id AND
`user_id`=".$_SESSION['user_id']);
}
P.S:我在我的数据库中有charset = utf8_turkish_ci,在mysql_query()之后我设置了
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
这有什么区别?为什么create_album
函数不插入土耳其人。字符。是否正确?
我的php / mysql知识有限,所以如果你需要了解更多关于这个问题的信息,我想分享一下。