SQL中的西里尔字符问题

时间:2016-06-20 15:18:58

标签: php mysql phpmyadmin

我有一个表格可以保存产品类别的名称,因为它在西里尔文中我遇到了一些问题。问题是它将我所有的西里尔文转移到一些西伯利亚语。

<?php 
$con = mysqli_connect('localhost', 'root', '', 'mydb');
// Check connection

if (!$con) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_set_charset($con,"utf8");

$data = json_decode(file_get_contents("php://input"));

$id = '';

if(!empty($data->CategoryId)) {
    $id = mysqli_real_escape_string($con, $data->CategoryId);
}

$name = mysqli_real_escape_string($con, $data->CategoryName);
$link = str_replace(" ", "-", $name);
$link_lower = strtolower($link);

if ($id != '') {
    $sql = "UPDATE `categories` SET CategoryName='$name', CategoryLink='$link_lower' WHERE `CategoryId`='$id'";

    if ($con->query($sql) === TRUE) {
        print 'success';
    } else {
        print 'error';
    }
} else {

    $sql = "INSERT INTO `categories` (`CategoryName`, `CategoryLink`) VALUES ('$name', '$link_lower')";

    if ($con->query($sql) === TRUE) {
        print 'success';
    } else {
        print 'error';
    }
}

&GT;

我已将整理设置为我的整个数据库及其表格为utf8_unicode_ci。

如果我在var_dump($name)查询之前设置了INSERT INTO,则会返回我在该字段中输入的内容。但是,当我设置var_dump($sql)时,$name$link_lower都处于某种状态

'INSERT INTO `categories` (`CategoryName`, `CategoryLink`) VALUES ('Ðобилни ÑÑÑÑойÑÑва', 'ðð¾ð±ð¸ð»ð½ð¸-ññññð¾ð¹ññð²ð°')'
像这样。我想指出的一点是,我在开发这个小项目时使用AngularJs并不确定它是否重要。

0 个答案:

没有答案