PHP / MSSql如何预览存储过程

时间:2012-03-19 22:42:16

标签: php sql-server stored-procedures

我们正在使用PHP对MSSQL数据库执行存储过程。

当我们手工构建存储过程并使用Navicat手动执行时,我们会得到正确的结果。

当我们构建查询并使用PHP执行它时,我们会得到不同的结果。

我们有什么方法可以预览php正在创建并针对服务器执行的存储过程吗?

这不是确切的代码,但基本上就是我们正在做的事情。

$stmt = mssql_init("sp_doSomething");
mssql_bind($stmt, "@sid", $sid, SQLINT4, false);
mssql_bind($stmt, "@value", $value, SQLINT4, false);
$result = mssql_execute($stmt);

我希望能够预览$ stmt中包含的实际SQL语句。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

SQL Query Profiler是一个很好的工具,可以实时挂钩和查看SQL服务器正在执行的操作。那会很有用。

答案 1 :(得分:0)

如果你是Windows用户,你可以下载2文件1.php_pdo_sqlsrv_56_ts.dll 2.php_sqlsrv_56_ts.dll并在更改php.ini文件后取php文件夹添加此行extension = php_pdo_sqlsrv_56_ts.dll和extension = php_pdo_sqlsrv_56_ts.dll 并重新启动apache

$connection = mssql_connect('hostname', 'username', 'password');
if (!$connection) {
  die('Unable to connect!');
}
if (!mssql_select_db('db-name', $connection)) {
  die('Unable to select database!');
}
$vall='zanala';
$stmt = mssql_init("SYSTEM_USERS_FIND_BY_USERNAME",$connection);
mssql_bind($stmt, "@IN_USERNAME",$vall,  SQLVARCHAR,  false,  false,  -1);
 $result=mssql_execute($stmt);
$row = mssql_fetch_assoc($result);
echo $my_id = $row['IID'];