2016-11-28 49 views
0

当我从我的应用程序插入所有★(星星)变成“★”mysql插入★变成★

我怎样才能阻止这种情况发生?

<?php 
$servername = ""; 
$username = ""; 
$password = ""; 
$dbname = ""; 

$inputTime = mysql_escape_string($_POST['inputTime']); 
$inputBotid = mysql_escape_string($_POST['inputBotid']); 
$inputImage = mysql_escape_string($_POST['inputImage']); 
$inputName = mysql_escape_string($_POST['inputSkin']); 
$inputStatus = mysql_escape_string($_POST['inputStatus']); 
$inputTradeid = mysql_escape_string($_POST['inputTradeid']); 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "INSERT INTO items (trade, market_hash_name, status, img, botid, time) 
VALUES ('$inputTime', '$inputName', '$inputStatus', '$inputImage', '$inputBotid','$inputTime')"; 

if ($conn->query($sql) === TRUE) { 
    echo "Success"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 
+1

检查数据库的排序规则以及如何插入数据。并阅读:http://www.joelonsoftware.com/articles/Unicode.html –

回答

0

你必须变为乱码:

*如果我直接通过phpmyadmin插入,但没有使用这个PHP做时它的工作原理。搜索this Q&A'Mojibake'查看是什么原因以及如何预防它。

既然你是符号,你可能想要在MySQL中使用utf8mb4,而不仅仅是utf8。前者包括各种4字节表情符号。

此外,请参阅PHP tips。连接后最重要的是$mysqli_obj->set_charset('utf8mb4');