$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]'' 附近有语法错误。
但是我把 命令输出以后 ,直接放到数据库去执行,是可以成功的。