1

所以,我有这两行 PHP。

$total_row_count = mysql_fetch_assoc(mysql_query(sprintf('SELECT COUNT(*) as count FROM %s',$table_name),$db));
$total_row_count = $total_row_count['count'];`

有没有办法改变 $total_row_count 的第一个声明,所以第二行不是必需的?

有这种效果的东西(我知道这不是功能代码)。

$total_row_count = mysql_fetch_assoc(mysql_query(sprintf('SELECT COUNT(*) as count FROM %s',$table_name),$db))['count'];

非常感谢!

4

1 回答 1

0

自 PHP 5.4 以来,您的第二个片段功能完美。这称为直接数组解引用。

但是,您永远不应该这样做mysql_fetch_assoc(mysql_query(...))mysql_query调用可能会失败并返回,这会将false丑陋的错误传播到mysql_fetch_assoc. 你需要错误处理!

$result = mysql_query(...);
if (!$result) {
    die(mysql_error());
    // or
    return false;
    // or
    throw new Exception(mysql_error());
    // or whatever other error handling strategy you have
}

$row = mysql_fetch_assoc($result);
$count = $row['count'];

如果您需要经常重复的代码太多,请将其包装在一个函数中。

function getCount() {
    $result = mysql_query(...);
    ...
    return $row['count'];
}
于 2013-08-13T06:11:13.550 回答