V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
onlyhot
V2EX  ›  问与答

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

  •  
  •   onlyhot · 2016-12-12 17:00:05 +08:00 · 1293 次点击
    这是一个创建于 2894 天前的主题,其中的信息可能已经有所发展或是发生改变。
    	$sql = "Declare @v1 varchar(5000)";
    	$sql .=	"Declare @v2 varchar(5000)";
    	$sql .=	"Set @v1 = '";
    	$sql .=	"<?xml version = \"1.0\"?>";
    	$sql .=	"<Var1Data>";
    	$sql .=	"<BodoOrder>";
    	$sql .= "<OrderNo>2016121201380</OrderNo>";
    	$sql .=	"<Bodtype>订单</BodType>";
    	$sql .=	"<xdate>2016-12-12</xdate>";
    	$sql .= "<DID>00</DID>";
    	$sql .=	"<CID>104179</CID>";
    	$sql .=	"<Contacter>111</Contacter>";
    	$sql .=	"<Tel>13707165174</Tel>";
    	$sql .=	"<address>测试地址</address>";
    	$sql .= "<BodNote>测试</BodNote>";
    	$sql .=	"</BodoOrder>";
    	$sql .= "</Var1Data>'";
    	$sql .= "Set @v2 = '";
    	$sql .=	"<?xml version = \"1.0\"?>";
    	$sql .= "<Var2Data>";
    	$sql .= "<BodoOrderDetails>";
    	$sql .= "<PID>14241</PID>";
    	$sql .= "<Color>金色</Color>";
    	$sql .= "<Size>90C</Size>";
    	$sql .= "<nQty>1</nQty>";
    	$sql .= "<nPrice>188.00</nPrice>";
    	$sql .= "</BodoOrderDetails>";
    	$sql .= "</Var2Data>'";
    	$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]'' 附近有语法错误。 
    

    但是我把 命令输出以后 ,直接放到数据库去执行,是可以成功的。

    2 条回复    2016-12-12 17:06:49 +08:00
    lbp0200
        1
    lbp0200  
       2016-12-12 17:03:08 +08:00
    pdo bind param
    搜一下
    onlyhot
        2
    onlyhot  
    OP
       2016-12-12 17:06:49 +08:00
    @lbp0200 我另外一段代码,也是这么拼接。可以直接成功。这才是让我崩溃的地方。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1153 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:53 · PVG 06:53 · LAX 14:53 · JFK 17:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.