PHP检查MS SQL数据库是否存在?
我想检查我的ms sql server中是否存在数据库“示例”PHP检查MS SQL数据库是否存在?,php,sql-server,sqlsrv,Php,Sql Server,Sqlsrv,我想检查我的ms sql server中是否存在数据库“示例” 代码似乎不起作用:/ 我得到了, sqlsrv_num_rows期望参数1位于资源中 config.php file.php 您有几个问题: 首先,您没有检查sqlsrv_query()的返回值,如果查询失败,它将返回FALSE,在这种情况下,您将FALSE传递到sqlsrv_num_rows(),这似乎是您的第一个问题。你必须这样做: $result=sqlsrv_query($conn, $sql, array(), ar
代码似乎不起作用:/
我得到了,
sqlsrv_num_rows期望参数1位于资源中 config.php
file.php
您有几个问题:
- 首先,您没有检查
sqlsrv_query()
的返回值,如果查询失败,它将返回FALSE
,在这种情况下,您将FALSE
传递到sqlsrv_num_rows()
,这似乎是您的第一个问题。你必须这样做:
$result=sqlsrv_query($conn, $sql, array(), array( "Scrollable" => 'static' ));
if ($result===false) {
// only print SQL error while debugging, in production log the error to a file
exit("Error executing query: ".sqlsrv_errors());
}
else {
$count=sqlsrv_num_rows($result);
// rest of your code
}
- 然后,您使用了错误的字段,在SQL Server中,数据库是
CATALOG
,但您正在检查SCHEMA\u NAME
,它是SQL Server的默认架构dbo
- 最后,您将尝试检查数据库是否存在,以便首先尝试连接到该数据库,因此,如果该数据库不存在,则连接将失败,并且由于您没有检查
sqlsrv\u connect()
的结果,这可能是以后失败的sqlsrv\u query()
的原因。您必须连接到始终存在的数据库,而不是要检查的数据库:
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>'YourMainDatabase'; // this database must exists
您有几个问题:
- 首先,您没有检查
sqlsrv_query()
的返回值,如果查询失败,它将返回FALSE
,在这种情况下,您将FALSE
传递到sqlsrv_num_rows()
,这似乎是您的第一个问题。你必须这样做:
$result=sqlsrv_query($conn, $sql, array(), array( "Scrollable" => 'static' ));
if ($result===false) {
// only print SQL error while debugging, in production log the error to a file
exit("Error executing query: ".sqlsrv_errors());
}
else {
$count=sqlsrv_num_rows($result);
// rest of your code
}
- 然后,您使用了错误的字段,在SQL Server中,数据库是
CATALOG
,但您正在检查SCHEMA\u NAME
,它是SQL Server的默认架构dbo
- 最后,您将尝试检查数据库是否存在,以便首先尝试连接到该数据库,因此,如果该数据库不存在,则连接将失败,并且由于您没有检查
sqlsrv\u connect()
的结果,这可能是以后失败的sqlsrv\u query()
的原因。您必须连接到始终存在的数据库,而不是要检查的数据库:
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>'YourMainDatabase'; // this database must exists
的可能副本的可能副本基本上,如果与数据库的连接尝试失败,则数据库不存在。如果它连接,它就存在。您知道如果数据库不存在,sql将返回哪些错误代码吗。因为如果我的连接有问题(服务器错误),它将返回与您可以根据失败的连接进行检测相同的错误,而且,我认为最好使用
信息_SCHEMA
方法,无论如何,如果您要创建DB if不存在,您需要一个工作连接。因此,基本上,如果与数据库的连接尝试失败,则数据库不存在。如果它连接,它就存在。您知道如果数据库不存在,sql将返回哪些错误代码吗。因为如果我的连接有问题(服务器错误),它将返回与您可以根据失败的连接进行检测相同的错误,但是我认为最好使用信息\u模式
方法,无论如何,如果您要创建数据库,如果不存在,您需要一个工作连接。