0

使用 php mysql 函数,如果我有一个查询,我知道它只会从数据表中返回一行,我会嵌套这样的函数:

$myVariable = mysql_fetch_assoc(mysql_query("SOME QUERY"));

使用 mysqli 函数我必须使用两行代码:

$query = $db->query("SOME QUERY");
$myVariable = $query->fetch_assoc();

是否可以像使用旧的 mysql 函数一样将这两行压缩为一条?

4

3 回答 3

1

您可以链接它们:

$myVariable = $db->query("SOME QUERY")->fetch_assoc();

尽管这和您的初始mysql_使用都容易出错。两者都不会特别好地处理失败的查询。

于 2013-06-24T10:58:27.150 回答
1

是的,您可以这样做,但我不建议这样做:

$myVariable = $db->query("SOME QUERY")->fetch_assoc();

这是一个坏主意,因为您没有机会进行任何错误处理。例如:

$myVariable = array();

$result = $db->query("SOME QUERY");
if($result && $result->num_rows == 1)
{
    $myVariable = $result->fetch_assoc();
}

如果您嵌套或链接调用,您可能会遇到未处理的致命错误,因为query()如果有 MySQL 错误将返回 false。

如果您希望整理或减少代码,您可以扩展 MySQLi 类并添加您自己的方法来获取单行。

于 2013-06-24T11:00:06.830 回答
-1

事实上,你不应该使用旧的 mysql 函数将两行压缩为一条,也不应该使用新的函数。

程序员需要压缩某些东西时,他们会编写一个函数。所以你必须这样做。

那么,它必须是什么

$myVariable = my_function("SOME QUERY");

如你看到的,

  • 它比所有这些嵌套/链接/纠缠结构更短且更具可读性
  • 它具有错误处理、分析日志记录等等
  • 如果您已经在使用函数,您甚至不必重写现有代码。
于 2013-06-24T11:05:26.140 回答