MSSQL数据库中文表名和中文字段无法查询

??????? 2017-01-22 05:07:07
大佬们好,问个问题,我是用PHP里面加入数据库语句,但是表名和字段都是中文的,无法正常使用SQL语句,另外好像MYSQL和MSSQL的中文语句不大一样,在MYSQL里面加个单引号就可以查询了,在MSSQL不知道怎么写,谢谢~~~~


<!DOCTYPE HTML>
<html lang="en-US">
<head>
<title>php中mssql数据库简单查询完整实例</title>
<meta charset="utf8">
<meta name="author" content="yanue" />
<meta name="copyright" content="powered by yanue" />
</head>
<body>

<?php



$serverName = "192.168.12.3";
$connInfo = array("Database"=>"ERP2", "UID"=>"fiber", "PWD"=>"fiber");
$conn = sqlsrv_connect($serverName, $connInfo);

if($conn){
echo "连接成功";


$query = "SELECT TOP 15 * FROM '主检长度'";


$result = sqlsrv_query($conn, $query);

//打印输出

while($row = sqlsrv_fetch_array($result))
{
$e = $row[“”棒号“”];
$e = iconv("GBK", "UTF-8//ignore", $e);//为了解决中文乱码问题
echo"<table border='1px' align='center'>";
echo"<tr>";
echo"<td>";
echo $e;
echo"</td>";
echo"</tr>";
echo"</table>";
//print_r("$e");
}


//echo phpinfo();
}else{
echo "连接失败!";
die( print_r(sqlsrv_errors(), true));
}





//-----------------------------




//-------------------------------



?>
</body>
</html>
...全文
811 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
??????? 2017-01-25
  • 打赏
  • 举报
回复
谢谢大家,已经解决了, $query = "SELECT TOP 13 * FROM 主检长度;"; $query = iconv('UTF-8', 'gb2312//IGNORE', $query); 也不用非要加中括号,就是得在语句后,增加转化命名,还得尝试多种编码组合~~~谢谢大家
lyqof908 2017-01-25
  • 打赏
  • 举报
回复
想不通为什么要取中文表名?使用英文表名不是更好吗? 我觉得代码里除了注释和界面有中文外,其它应该都是英文的
zbdzjx 2017-01-24
  • 打赏
  • 举报
回复
看一下这个:http://www.jb51.net/article/31570.htm 按这个文中的说法,在执行SQL前,就要进行转换。
二月十六 2017-01-23
  • 打赏
  • 举报
回复
直接执行语句可以么?
??????? 2017-01-23
  • 打赏
  • 举报
回复
只有带中文名字的连接不上,表名或者字段名都连接不上,带下划线不带中文的可以正常连接。。。谢谢
??????? 2017-01-23
  • 打赏
  • 举报
回复
$query = "SELECT TOP 15 * FROM 主检长度"; $result = sqlsrv_query($conn, $query); 试过单引号,双引号,中括号,都不行, 服务器是mssql 2014,排序规则是Chinese_PRC_CI_AS 谢谢大家帮俺
??????? 2017-01-23
  • 打赏
  • 举报
回复
引用 3 楼 ch21st 的回复:
[quote=引用 2 楼 cclyl2011 的回复:]
[quote=引用 1 楼 yupeigu 的回复:]

mysql一般要加上单撇号,在sql server里要加上[],如:[xxx]


加了中括号,还是不行,哎~~~是不是我的数据库需要设置编码呢~~[/quote]
在你的数据仿照你的业务表用Create Table创建一个中文的表,然后从插入数据,再查询,现在客户端看看能否成功
如果有问题,你可以将你的测试数据贴出,大家可以帮你看看
没有实际的数据例子,也有可能出现你没忽略的地方[/quote]

-------------------------------------------------------------------------------------
ERP2数据库中有TABLE和VIEW,这两个都是相同问题,纯英文的都能连接上并读取,带下划线_的都连接不上,带中文的也都连接不上,求教,谢谢
卖水果的net 2017-01-22
  • 打赏
  • 举报
回复
最终传到数据库中的语句,不是正常的表名称。楼主打开 sql profiler,跟踪一下。
还在加载中灬 2017-01-22
  • 打赏
  • 举报
回复
加了中括号,还是不行,有提示什么信息吗?
道素 2017-01-22
  • 打赏
  • 举报
回复
引用 2 楼 cclyl2011 的回复:
[quote=引用 1 楼 yupeigu 的回复:] mysql一般要加上单撇号,在sql server里要加上[],如:[xxx]
加了中括号,还是不行,哎~~~是不是我的数据库需要设置编码呢~~[/quote] 在你的数据仿照你的业务表用Create Table创建一个中文的表,然后从插入数据,再查询,现在客户端看看能否成功 如果有问题,你可以将你的测试数据贴出,大家可以帮你看看 没有实际的数据例子,也有可能出现你没忽略的地方
??????? 2017-01-22
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
mysql一般要加上单撇号,在sql server里要加上[],如:[xxx]
加了中括号,还是不行,哎~~~是不是我的数据库需要设置编码呢~~
LongRui888 2017-01-22
  • 打赏
  • 举报
回复
mysql一般要加上单撇号,在sql server里要加上[],如:[xxx]

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧