gpt4 book ai didi

php - 如何更改数据库连接的默认字符集?

转载 作者:行者123 更新时间:2023-11-29 12:55:10 25 4
gpt4 key购买 nike

我无法(通过 php)在 PhpMyadmin 中正确输入土耳其字符。我将所有内容(浏览器编码、html 字符集、连接数据库排序规则)设置为 UTF-8..

和我的查询

<?php
ob_start();
session_start();

mysql_connect('localhost', 'root', 'pass');
mysql_select_db('myDatabase');
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_turkish_ci'");
?>

P.S:当我更改数据库上的文本并正确写入时,我可以在浏览器上正常显示它们

所以问题是通过 php 将文本正确输入数据库..

我使用 msqli 来查找问题所在:

<?php
ob_start();
session_start();
$link = mysqli_connect('localhost', 'root', 'pass');
mysql_select_db('myDatabase');
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_turkish_ci'");

/* check connection */
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
mysqli_close($link);

?>

输出(数据库连接的默认字符集)是“当前字符集是latin1”

1-我在 php.ini 或其他地方找不到默认的“latin1”..它来自哪里?

2-如何将其更改为 utf8_turkish_ci?

提前谢谢您!

最佳答案

mysqlmysqli 库创建单独的 mysql session ,要验证 mysql session 中的字符集设置,您可以执行以下操作:

mysql_select_db('myDatabase');
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_turkish_ci'");
$rs = mysql_query("show variables like 'char%'");
$row = mysql_fetch_assoc($rs);
print_r($row);

关于php - 如何更改数据库连接的默认字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24173987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com