PHP PDO 连接SQLSErver,PHP 使用 PDO 方式连接 sqlserver ,拼接 的 sql 命令总是报错

$sql = "Declare @v1 varchar(5000)
";

$sql .= "Declare @v2 varchar(5000)";

$sql .= "Set @v1 = '";

$sql .= "<?xml version = \"1.0\"?>";

$sql .= "
";

$sql .= "
";

$sql .= "2016121201380
";

$sql .= "订单
";

$sql .= "2016-12-12
";

$sql .= "00
";

$sql .= "104179";

$sql .= "111
";

$sql .= "13707165174
";

$sql .= "

测试地址

";

$sql .= "测试
";

$sql .= "
";

$sql .= "'

";

$sql .= "Set @v2 = '";

$sql .= "<?xml version = \"1.0\"?>";

$sql .= "
";

$sql .= "
";

$sql .= "14241
";

$sql .= "金色
";

$sql .= "90C
";

$sql .= "1
";

$sql .= "188.00";

$sql .= "
";

$sql .= "'

";

$sql .= "Exec LW2DRP @v1,@v2";

try {

$stmt = $dbh->prepare($sql);

$stmt->execute();

} catch (Exception $e) {

echo $e->getMessage();

}

报错:

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 102 [Microsoft][SQL Server Native Client 11.0][SQL Server]'
' 附近有语法错误。 in C:\phpStudy\WWW\test.php on line 51

但是我把 echo htmlspecialchars($sql) 输出的代码,直接放到数据库去执行,是可以成功的。

Declare @v1 varchar(5000)
Declare @v2 varchar(5000)Set @v1 = '<?xml version = "1.0"?>

2016121201380
订单
2016-12-12
00
104179111
13707165174


测试地址

测试

'

Set @v2 = '<?xml version = "1.0"?>

14241
金色
90C
1
188.00
'

Exec LW2DRP @v1,@v2

已经解决。从 word文档粘贴过来的时候,肯定带上了特殊字符。手动重新打一遍就 OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值