首页 > 解决方案 > 如何在 sql server 上的列名称为阿拉伯语时获取数据?

问题描述

我一直在尝试从具有阿拉伯列名的表中获取数据。我能够将阿拉伯语文本从其他表转换为 utf-8,但我无法从具有阿拉伯语列名的表中获取数据。

这适用于 Linux 服务器、MySql 5、PHP 5 和 Apache 2。我正在使用 PHP MSSQL 库连接到 SQL 服务器。我试过用阿拉伯语查询select * from table_name",select رقم الطالب from table_name

ini_set('mssql.charset', 'UTF-8');
header('Content-type:text/html');
echo '<meta charset="UTF-8">';
// Connect to MSSQL
$con = mssql_connect('server', 'username', 'pwd');


if (!$con) {
    die('Something went wrong while connecting to MSSQL');
}

// Select a database:
mssql_select_db('database_name') or die('Could not select a database.');

$SQL = "SELECT `الجنس` as Gender FROM `table_name`";

$result = mssql_query($SQL)  or die('A error occured: ' . mysql_error());

$res=mssql_fetch_assoc($result);

echo iconv('UTF-16LE', 'UTF-8', $Row['Gender']);

这些是我在尝试上述方法时遇到的错误

警告:

mssql_query():消息:'`' 附近的语法不正确。(严重性 15)

标签: phpsqlsql-serverarabic

解决方案


不确定您使用的是 sql server 还是 mysql。假设 sql server,当您有特殊字符作为列名时,您必须将名称括在方括号中。如果可能的话,我会避免使用阿拉伯语作为列名。很难与之合作。我建议使用英文列名(特别是因为 t-sql 的其余部分是英文的)。然后在表示层使用阿拉伯语。

SELECT [الجنس] as Gender FROM table_name

推荐阅读