日期:2014-05-17  浏览次数:20469 次

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" />
<?php
mssql_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 。