【发布时间】:2019-02-19 14:31:43
【问题描述】:
我正在尝试使用 PDO_DBLIB 驱动程序和 php 更新存储在我的 SQL 数据库中的数据。要更新数据,我只需将几个命名参数传递给存储过程,它就完成了,但是当我尝试使用下面的代码时,它没有给我任何错误,但数据库中没有任何更新。我在 json 响应中记录语句执行以跟踪。 这是我的代码:
$conn = new PDO("dblib:$dsn","$uname", "$pwd");
$sth = $conn->prepare("EXECUTE SP_Web_Contact_Update :Person_ID, :ContactType_Code_ID, :Contact_Info, :Contact_ClassID");
$sth->bindValue(':Person_ID', $syntonicID, PDO::PARAM_INT);
$sth->bindValue(':ContactType_Code_ID', $codeid, PDO::PARAM_STR );
$sth->bindValue(':Contact_Info', $contactinfo, PDO::PARAM_STR );
$truefalse = $sth->execute();
echo json_encode($trufalse);
上面的代码总是打印true,这没有给我进一步排除故障的信息。你能帮我解决这个问题吗?
【问题讨论】:
-
如果没有更多信息或存储过程的代码,这将很难解决。我遇到了类似的问题,我的建议是使用 SQL Profiler 来捕获对数据库的调用,然后在 SQL Management Studio 中手动运行它以观察响应。我已经进行了手动运行工作,但它失败了来自 PHP,然后导致我走上了其他道路。让我知道它在手动运行时是否有效,我们可以从那里获取它。 (我遇到的问题是在不喜欢外部调用的表上同时存在触发器和约束)
标签: php sql-server pdo