MySQL php utf-8格式问题

时间:2015-06-09 08:24:14

标签: php mysql encoding

所以我们在这里,首先我有这个问题是我的代码

$servername = DB_HOSTNAME;
$username = DB_USERNAME;
$password = DB_PASSWORD;
$dbname = DB_DATABASE;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
/*UTF-8 format*/
$conn->set_charset("utf8");

$clean0 = "SET NAMES utf8;";
$clean1 = "UPDATE product_description SET name = REPLACE(name, '$DeleteWord1', '$empty') WHERE name LIKE '%$FindWord1%';";

if ($conn->query($clean0) === TRUE) {
    echo "<h1>Product unwanted names deleted successfully</h1>";
} else {
    echo "Error updating record: " . $conn->error;
}

if ($conn->query($clean1) === TRUE) {
    echo "<h1>Product unwanted names deleted successfully</h1>";
} else {
    echo "Error updating record: " . $conn->error;
}

如果我不使用保加利亚字母,代码本身就可以正常工作。 但是当我使用保加利亚字母时,代码不想找到$ DeleteWord1

当我varp_dump($clean1)

我得到了

    string 'UPDATE product_description SET name = REPLACE(name,
 'ЧАСОВНРРљ', ' ') WHERE name LIKE '%SHEEN%';' (length=103)

正如你们可以看到它由于某种原因而无法在UTF-8中进行转换,这就是为什么它不适用于保加利亚字母,

BUT!它适用于本地主机中的保加利亚字母,但不适用于实时主机帐户

两个数据库都有utf-8_general_ci的排序规则(localhost&amp; livehost one)

任何想法如何解决这个问题?

$conn->set_charset("utf8");

$clean0 = "SET NAMES utf8;";

这两个人都应该这样做我自己尝试例如charset并且只设置名称,同样的问题

还有一件事,我怎么能看到它是否真的传递了像ЧАСОР'РќР这样的价值观?因为当我将cleaner.php文件设置为<meta charser="utf-8">时,它会正常出现。有什么想法吗?

0 个答案:

没有答案