3

我正在使用该函数在 php 中建立数据库连接

$DBConn = mysql_connect ("localhost" , "testuser" , "test123")

在释放我正在使用的连接时

if( is_resource($DBConn) )

检查当前是否设置了连接。我想知道这样做是否有效,或者我应该像这样检查连接

if( $DBConn )

我想知道同时使用这两种说法的利弊。

4

3 回答 3

1

首先,你不应该再使用mysql_xxx函数;有很多文章讨论了使用 PDO / mysqli 准备好的语句等的好处。

通过查看手册,它声明它返回链接标识符或false失败。你不应该假设这个标识符到底是什么,它通常是一个资源,但它也可能是一个对象或整数。我会简单地否定更简单的条件:

if (false !== $DBConn) {
    // do something with the database
}

或者,或者:

if (false === $DBConn) {
    throw new Exception("Could not connect to database");
}
// do something with the database

编辑

使用if ($DBConn) { ... }也可以,因为它基本上与 0、false、null、"" 和空数组相反。

于 2012-10-06T05:39:10.873 回答
0

成功连接或查询后返回资源标识符。因此,该函数is_resource会将变量标识为资源或错误。

如果If表达式计算结果为TRUE,PHP 将执行语句,如果计算结果为FALSE,则不会。

于 2012-09-14T11:46:17.973 回答
0

它们本质上是相同的,尽管有人可能会争辩说,调用is_resource方法具有调用函数的开销,但if也必须确定这一点,并且它们之间几乎没有区别。我猜这都是关于你的编码风格和可读性

于 2012-09-14T11:51:36.533 回答