使用php mysql函数,如果我有一个我知道的查询只会从数据表中返回一行,我会嵌套这样的函数:
$myVariable = mysql_fetch_assoc(mysql_query("SOME QUERY"));
使用mysqli函数我必须使用两行代码:
$query = $db->query("SOME QUERY");
$myVariable = $query->fetch_assoc();
是否可以将两行压缩为一行,就像使用较旧的mysql函数一样?
答案 0 :(得分:1)
你可以chain他们:
$myVariable = $db->query("SOME QUERY")->fetch_assoc();
尽管这些和您的初始mysql_
使用都容易出错。也不会特别好地处理失败的查询。
答案 1 :(得分: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();
}
如果嵌套或链接调用,则可能会遇到未处理的致命错误,因为如果出现MySQL错误,query()
将返回false。
如果您希望整理代码或减少代码,可以扩展MySQLi类并添加自己的方法来获取单行。
答案 2 :(得分:-1)
事实上,不应该使用较旧的mysql函数将两行压缩为一行,而不应该使用新的函数。
当程序员需要压缩某些内容时,他们会编写一个函数。所以你必须这样做。
那么,它必须是什么
$myVariable = my_function("SOME QUERY");
如您所见,