【发布时间】:2015-06-09 09:31:46
【问题描述】:
我正在使用 sqlsrv 连接到 MSSQL 数据库。安全(并且仅对少数人可用)Intranet 应用程序中的一项功能提供了一个用于编写 T-SQL 代码并将它们执行到数据库的框。目前我正在开发一个功能来测试给定的查询。
首先验证查询的正确意图(例如,如果发现 INSERT 、 UPDATE 、 DELETE 、 SHOW 、 CREATE 等,则查询将不会执行)。如果成功,我将尝试测试查询。当我提供错误的 SQL 查询时,我仍然会从 sqlsrv_query 而不是 false 获得资源(如这里的预期行为所述:http://php.net/manual/en/function.sqlsrv-query.php)。注意:查询确实是假的(有趣的句子..),在 SQL Server Management Studio 中查询按预期失败。
下面我的函数testQuery(string $query):
public static function testQuery($query) {
sqlsrv_configure('WarningsReturnAsErrors', 1);
$statement = sqlsrv_query(self::$instance, $query);
if($statement === false) {
$errors = sqlsrv_errors(SQLSRV_ERR_ALL);
if(!is_null($errors)) {
return $errors;
}
return false;
}
return true;
}
使用或放弃 sqlsrv_configure() 没有任何区别。我正在查询的数据库是 MSSQL 2005 数据库。
建议?
【问题讨论】:
标签: php sql-server-2005 error-handling sqlsrv