当前位置: 代码迷 >> PHP >> php进行sql server操作报错解决办法
  详细解决方案

php进行sql server操作报错解决办法

热度:40   发布时间:2016-04-29 01:21:33.0
php进行sql server操作报错
php对sql server 2000进行操作
sql语句是:
insert into someTable values('1111111','222222','33333333333','1100100',4,'5100005','盘尼西林','01','0.125g*20','口服常释剂型',16,1,16,0,0,'0','1','2012-05-07','YP','11','盒',16,0,0,0,'01','01',16,0,0,'ZL001','2012-5-7','/','/','/')
在sql sever2000的sql查询分析器执行没问题,但在php中执行报错,代码如下:
PHP code
<meta http-equiv="content-type" content="text/html; charset=utf-8" /><?phpmssql_connect("someIP","id","pass");if($con)    echo "link db success!";else    echo "link db failed!". mysql_error();$db = mssql_select_db( "someDatabase",$con) or die("无法选择db");$query = "insert into someTable values('1111111','222222','33333333333','1100100',4,'5100005','盘尼西林','01','0.125g*20','口服常释剂型',16,1,16,0,0,'0','1','2012-05-07','YP','11','盒',16,0,0,0,'01','01',16,0,0,'ZL001','2012-5-7','/','/','/')";$result = mssql_query($query) or die("无法执行sql:$query");?>


报错如下:
link db success!
Warning: mssql_query() [function.mssql-query]: message: 第 1 行: '01' 附近有语法错误。 (severity 15) in C:\AppServ\www\test\insert.php on line 14

Warning: mssql_query() [function.mssql-query]: message: 字符串 ')' 之前有未闭合的引号。 (severity 15) in C:\AppServ\www\test\insert.php on line 14

Warning: mssql_query() [function.mssql-query]: Query failed in C:\AppServ\www\test\insert.php on line 14
无法执行sql:insert into someTable values('1111111','222222','33333333333','1100100',4,'5100005','盘尼西林','01','0.125g*20','口服常释剂型',16,1,16,0,0,'0','1','2012-05-07','YP','11','盒',16,0,0,0,'01','01',16,0,0,'ZL001','2012-5-7','/','/','/')

请问问题出在哪里?sql语句应该是没问题的,为何报错?谢谢各位

------解决方案--------------------
有可能是转义字符的问题

'/-'->'//',试试
------解决方案--------------------
charset=utf-8 ???

sql server 2000 并不支持 utf-8 编码
特殊字符“'”需转义成“''”
------解决方案--------------------
SQL Server 2000 不以 UTF-8 形式存储数据,只在一种关键情形下支持 UTF-8,即支持可扩展标记语言(XML),故无法直接是SQL Server 2000数据库支持 UTF-8 。
  相关解决方案