阿拉伯语不存储在mysql / php中

时间:2017-09-13 07:12:34

标签: php mysql database mysqli

阿拉伯语不存储在mysql / php

我尝试插入此查询,但它是商店 ???? ???? ?? ????

INSERT INTO school_name (en_school_name, ar_school_name) VALUES ('some data', 'روضة احمد بنبل')

对于解决方案,我已添加此

ini_set('default_charset', 'utf-8');
header('Content-type: text/html; charset=utf-8');
mysqli_set_charset($conn,"utf8");
mysqli_query($conn,"SET NAMES 'utf8'");
mysqli_query($conn,'SET CHARACTER SET utf8'); 

并且也更喜欢这个问题但不适用于我的情况,Save Data in Arabic in MySQL database

如果我手动运行查询,它可以正常工作,但是当我试图用此插入查询时

$sql = "INSERT INTO school_name (en_school_name, ar_school_name)
        VALUES ('".$dat_val_en."', '".$dat_val_ar."')";

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

它是商店 ???? ???? ?? ???? 即可。 表格结构

enter image description here

5 个答案:

答案 0 :(得分:1)

更改数据库结构
utf8

utf8_unicode_ci

数据库的charset必须是utf8_unicode_ci

您也可以像这样设置数据库

CREATE DATABASE databasename
    CHARACTER SET utf8
    COLLATE utf8_unicode_ci;

答案 1 :(得分:0)

确保已将db字符集设置为UTF-8和整理toutf8_general_ci

答案 2 :(得分:0)

CREATE TABLE `tableName` (
  `id` int(11) NOT NULL,
  `comment` text COLLATE utf16_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf16 COLLATE=utf16_bin;

注意:在创建表格时请使用以下内容: - DEFAULT CHARSET = utf16 COLLATE = utf16_bin

答案 3 :(得分:0)

使用php正确读取,编写和排序mysql数据库中的阿拉伯文本,请确保:

1- MySQL charset: UTF-8 Unicode (utf8)

2- MySQL连接排序规则: utf8_general_ci

3-您的数据库和表格排序设置为: utf8_general_ci utf8_unicode_ci

然后,在连接到db:

时,在PHP脚本中添加此代码
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');

了解更多详情: http://www.adviesenzo.nl/examples/php_mysql_charset_fix/

答案 4 :(得分:0)

CREATE TABLE `tableName`(`col` varchar(100) collate utf8_ general_ci);

为我工作

尝试排序utf8_general_ci