我想知道有些表是空的还是空的,现在我用这段代码意识到了这个问题:
// if table is empty it must return TRUE, if full FALSE
private function isEmpty($tableName)
{
if ($result = $this->mysqli->prepare("SELECT COUNT(*) FROM ?"))
{
$result->bind_param("s",$tableName);
$result->execute();
$row_cnt = $result->num_rows;
if (empty($row_cnt))
{
return TRUE;
}
else
{
return FALSE;
}
}
}
这段代码似乎不是很完美,我想知道是否有更好的方法来获得相同的结果,但是使用 predicate SQL EXISTS或其他东西?谢谢你。
更新: 感谢您的评论和回答,但无论如何我不知道该怎么做,这称为错误:
$mysqli = new mysqli("localhost","root","","database");
if ($result = $mysqli->prepare("SELECT COUNT(*) FROM `talbe` LIMIT 1"))
{
$row = $result->fetch_row();
echo "<pre>";
print_r($row);
echo "</pre>";
$result->close();
}
$mysqli->close();
[2012 年 6 月 9 日星期六 11:25:34] [错误] [客户端 127.0.0.1] PHP 致命错误:调用 F:\server\sites\home\test.loc\www\ 中未定义的方法 mysqli_stmt::fetch_row() empty.php 在第 9 行
更新:
$mysqli = new mysqli("localhost","root","","db");
if ($result = $mysqli->query("SELECT * FROM `table` LIMIT 1"))
{
if ($obj = $result->fetch_object())
{
echo "NOT EMPTY";
}
else
{
echo "empty";
}
$result->close();
}
$mysqli->close();
就是这个。