加入收藏 | 设为首页 | 会员中心 | 我要投稿 徐州站长网 (https://www.0516zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

PHP/MSSql如何预览存储过程

发布时间:2022-12-03 09:01:36 所属栏目:MsSql教程 来源:互联网
导读: PHP/MSSql如何预览存储过程
phpsql-serverstored-procedures
PHP/MSSql如何预览存储过程,php,sql-server,stored-procedures,Php,Sql Server,Stored Procedures,我们正在使用PHP对MSSQL数据

PHP/MSSql如何预览存储过程

phpsql-serverstored-procedures

PHP/MSSql如何预览存储过程,php,sql-server,stored-procedures,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, "@v

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

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

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

我们是否可以预览php在服务器上创建和执行的存储过程

这不是确切的代码Mssq存储过程,但本质上是我们正在做的

$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语句

任何帮助都将不胜感激。

SQL查询探查器是一个很好的工具,可以实时钩住并观察SQL server正在做什么。这将非常有用。

如果您是windows用户,您可以下载2个文件1.php_pdo_sqlsrv_56_ts.dll 2.php_sqlsrv_56_ts.dll,并在更改php.ini文件后获取php文件夹添加此行扩展名=php_pdo_sqlsrv_56_ts.dll和扩展名=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'];

因此,更为复杂的是,我们无法访问MSSql服务器。我们所能做的就是打电话反对它。有没有其他方法可以看到我们这边的调用?您不能在php中逐行运行mssql中的存储过程。如果您无法访问MSSQL,您如何知道sp内容与您的手写查询相同?我会观察服务器生成的值,并尝试自己获取相同的值。试着用不同的输入,如果我的函数产生了完全相同的结果,那么我会说它们是相同的。到目前为止,尝试和错误对我们并不起作用。那么,我的理解是否正确,在我执行PHP之前,无法看到它正在创建的调用?没有办法看到mssql_execute()将执行什么?为什么您认为您没有正确的权限使用sql profiler进行分析?如果您可以使用PHP连接并使用PHP发送查询,我想您也可以对服务器进行分析?如果您没有权限查看正在执行的内容,您就没有机会让PHP执行。因为我正在用PHP构建和执行查询,所以我似乎能够看到我正在执行的内容。查询确实是在我这边生成并发送到服务器的。SQL事件探查器现在不是我的选择,我希望有另一种方法。没有“预览”存储过程的通用方法,因为它们几乎可以做任何事情:如何预览发送电子邮件的过程?SQL Profiler是正确的工具,但您在下面说您不能使用它。您是否有可以使用Profiler的测试环境?您还应该解释“不同的结果”是什么意思,以及您使用的是哪个版本和版本的SQL Server。

(编辑:徐州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!