Я пытаюсь знать некоторую таблица пуста или нет, теперь я понял, этот вопрос с этим кодом:Запрос MySQLi о пустой таблице или нет?
// 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;
}
}
}
этот код кажется не очень совершен, я хотел бы знать, существует ли лучше способ получить те же результаты, но с использованием predicat 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();
[Sat Jun 09 11:25:34 2012] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined method mysqli_stmt::fetch_row() in F:\server\sites\home\test.loc\www\empty.php on line 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();
все.
Я не думаю, что вы можете легко подготовить имя таблицы, подобное этому. –
Мне все еще нужно решение, я не могу найти полный пример. Это выглядит так просто в mysql вместо mysqli. – AquaVita
Есть ли опасность, что имя таблицы может быть вредным? Это исходит от пользователя? –