gpt4 book ai didi

utf8_general_ci 排序规则上的 mysql_query

转载 作者:行者123 更新时间:2023-11-30 23:27:26 25 4
gpt4 key购买 nike

我在使用 utf8 编码对数据库运行查询时遇到了一些问题。一切正常,直到我尝试使用带有特殊字符的字符串。我无法对数据库进行大量更改,因为我正在向现有的 prestashop 模板添加一些单独的页面。

这是我的代码(抱歉,其中一些是罗马尼亚语)

$acces_server=mysql_connect($db_host, $db_user, $db_pass);
if(!$acces_server) die ("Server-ul nu este disponibil momentan !");
mysql_set_charset('utf8');
echo mysql_client_encoding();

$acces_bd = mysql_select_db($db_name);
if (!$acces_bd) die ("Ne pare rau, dar baza de date nu poate fi accesata momentan !");
mysql_query('SET NAMES utf8') or die(mysql_error());
mysql_query('SET CHARACTER SET utf8') or die(mysql_error());
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci" ') or die(mysql_error());

如果我尝试进行这样的查询,我会得到 0 行:

$experienta= $_GET['name'];
$rez=mysql_query("SELECT nume_cutie FROM rez_experiente WHERE nume = '".$experienta."'");

我已经使用 echo 来显示查询,然后在 phpMyAdmin 中输入它并且它起作用了。头部部分也有这一行:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我真的不知道还能做什么,到目前为止我找到的所有解决方案似乎都不起作用。我什至尝试改用 mysqli,结果是一样的。请帮助我,感谢您抽出时间。

*编辑我尝试将 stmt->prepare 与 mysqli 一起使用,但没有用。我也试过这样做:

$experienta2=str_replace("?","%",utf8_decode($experienta));
$rez=mysql_query("SELECT nume_cutie FROM rez_experiente WHERE nume LIKE '".$experienta2."'");

这变成了:

SELECT nume_cutie FROM rez_experiente WHERE nume LIKE '5th Avenue Beauty Center  - Răsfăţ'

进入这个:

SELECT nume_cutie FROM rez_experiente WHERE nume LIKE '5th Avenue Beauty Center - R%sf%%'

再次,查询在 phpMyAdmin 中有效,但 mysql_query() 不返回任何内容我切换到 utf8_unicode_ci 并没有任何改变。

最佳答案

数据库连接后,运行这些查询:

SET character_set_client=utf8;
SET character_set_connection=utf8;
SET character_set_database=utf8;
SET character_set_results=utf8;
SET character_set_server=utf8;

关于utf8_general_ci 排序规则上的 mysql_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12533678/

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