php - 如何在 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)
解决方案
不确定您使用的是 sql server 还是 mysql。假设 sql server,当您有特殊字符作为列名时,您必须将名称括在方括号中。如果可能的话,我会避免使用阿拉伯语作为列名。很难与之合作。我建议使用英文列名(特别是因为 t-sql 的其余部分是英文的)。然后在表示层使用阿拉伯语。
SELECT [الجنس] as Gender FROM table_name
推荐阅读
- copy - 如何将文件从 SFTP 复制到基于源文件名(Blob 存储)动态创建的目标文件夹?
- virtualbox - 当侦听器设置为主机 IP 地址时,与 Oracle DB 19c 的连接失败
- css - 如何将 Ultimate Member 与 buddyboss 和 anspress 集成
- flutter - 无法从另一个包调用 Flutter Singleton
- javascript - 即使在使用 JavaScript 更改事件侦听器后,附加 HTML 元素的函数也不起作用
- r - 使用 ifelse 更改输出它不应该改变
- flutter - Flutter Windows:如果将 TextField 放置在 AlertDialog 内,则它不允许空间
- django - 如何组合我的 Django 模型,以免重复自己?
- sql-server - 如何将 sql 查询的结果保存在 vba 变量中?
- .net - 为什么 Serilog PostgreSQL 接收器无法通过配置工作?