mysql西里尔故障排除

时间:2016-06-11 17:28:33

标签: php mysql

大家好!

所以,我有一个问题:我有一些西里尔文的数据。这是问题所在:     字符串值不正确:'\xD0\xBD\xD0\xBE\xD0\xB2...'代表列'标题'在第1行。

这是我的代码:

$link = mysql_connect('localhost', 'root', 'pass');
if($link&&isset($_POST['addSticker'])){
    $title = $_POST['title'];
    $description = $_POST['description'];
    $photo = mysql_real_escape_string(urlencode($_POST['photo']));
    $quantity = $_POST['quantity'];
    $price = $_POST['price'];
    mysql_select_db('db_name');
    $sql = "INSERT INTO table (title, description, photo, quantity, price) VALUES ('$title', '$description', '$photo', '$quantity', '$price');";
    mysql_query("SET NAMES utf8", $link);
    mysql_query($sql, $link) or die(mysql_error());
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

首先,您的查询对SQL注入很容易。建议escape your characters(MySQLi)。这甚至可以解决您的问题。第二件事是你还在使用不推荐使用的mysql API。相反,您应该切换到PDO或mysqli API。如果您的排序规则错误(转义输入没有帮助),您还可以将MySQL排序规则更改为these之一,以便数据库可以理解这些字符。