Php 按包含特殊字符的字符串搜索mysql数据库的问题
所以我正在为Shopify开发一个应用程序。由于Shopify的工作方式,我们不得不按名称与供应商打交道,而不是使用数字uid 这给我们带来了一些问题。我们有一个从Shopify导入数据库的供应商,名为“ColecciÃn Luna”。做好以下工作:Php 按包含特殊字符的字符串搜索mysql数据库的问题,php,mysql,utf-8,Php,Mysql,Utf 8,所以我正在为Shopify开发一个应用程序。由于Shopify的工作方式,我们不得不按名称与供应商打交道,而不是使用数字uid 这给我们带来了一些问题。我们有一个从Shopify导入数据库的供应商,名为“ColecciÃn Luna”。做好以下工作: SELECT email FROM vendors WHERE name=('Colección Luna') LIMIT 1 这将返回我们正在查找的数据。但是,在php中,如果我们执行以下操作: $row = mysql_fetch_row(
SELECT email FROM vendors WHERE name=('Colección Luna') LIMIT 1
这将返回我们正在查找的数据。但是,在php中,如果我们执行以下操作:
$row = mysql_fetch_row(mysql_query("SELECT name FROM vendors WHERE name=('Colección Luna') LIMIT 1"));
echo $row[0];
SELECT email FROM vendors WHERE name=('Colecciu00f3n Luna') LIMIT 1
这将输出:
Colecciu00f3n Luna
这是一个问题,因为在我们处理的所有情况下,我们都使用供应商名称作为uid。例如,使用从数据库中获取的名称查找电子邮件会导致sql语句如下所示:
$row = mysql_fetch_row(mysql_query("SELECT name FROM vendors WHERE name=('Colección Luna') LIMIT 1"));
echo $row[0];
SELECT email FROM vendors WHERE name=('Colecciu00f3n Luna') LIMIT 1
由于字符的差异,最终无法找到我们要查找的数据
我假设php在默认情况下是用utf-8编码字符串的,有没有办法强制它以与数据库相同的格式输出字符串
非常感谢。您的编码处理搞砸了。您需要将数据库和PHP修复为MySQL编码处理,以正确的形式处理字符。“ó”不是你要找的角色(手击)。嗯,实际上这很有道理。你能举一个简单的例子,说明我如何正确处理从shopify获取数据和将数据存储到数据库之间的编码吗?可能重复,-参见这两个感谢你的建议,这真的很有帮助!