这不起作用:
$dbh = new PDO("dblib:host=xxxx;dbname=xxx","xxxxx","xxxxx"); $sth = $dbh->prepare("{exec wcweb_UserInfo(?)}"); $sth->bindParam(1,$name); $sth->execute(); while($result = $sth->fetch(PDO::FETCH_ASSOC)) { var_dump($result); }
这也行不通:
$dbh = new PDO("dblib:host=xxxxx;dbname=xxxx","xxxx"); $sth = $dbh->prepare("{call wcweb_UserInfo(?)}"); $sth->bindParam(1,$name); $sth->execute(); while($result = $sth->fetch(PDO::FETCH_ASSOC)) { var_dump($result); }
这个工作:
$dbh = new PDO("dblib:host=xxxxx;dbname=xxxx","xxxx"); $sth = $dbh->prepare("exec wcweb_UserInfo @userid=?"); $sth->bindParam(1,$name); $sth->execute(); while($result = $sth->fetch(PDO::FETCH_ASSOC)) { var_dump($result); }
我尝试了上面的2使用了没有大括号的工作,等等.我知道有人会说,好吧,就像它的工作方式一样吗? ..问题是我使用sqlsrv_query库从IIS服务器移植一个正在进行的应用程序到Linux服务器.
应用程序中的所有数据库调用都是使用此方法编写的函数:{call wcweb_UserInfo(?)} ..没有指定任何参数名称,因此我必须修改每个数据库调用以包含参数名称.我的印象是PHP5的PDO库可以做同样的调用吗?
帮帮我!有什么我做错了或只是PDO无法拨打这类电话?
出于某种原因,这有效:
原文链接:https://www.f2er.com/php/138368.html$sth = $dbh->prepare("exec wcweb_UserInfo ?"); $sth->bindParam(1,$name); $sth->execute(); while($result = $sth->fetch(PDO::FETCH_ASSOC)) { var_dump($result); }
我也许可以忍受这个.任何人都知道为什么其他方法不起作用?这是图书馆的不同之处吗?