[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySQLi
Stasonix
1-ый вопрос немного отступлю от темы сразу - работает ли у вас php.net? И 2-й собственно сабж. Итого, в моем исполнении это выглядит так:


// проверяем пуста ли таблица, если да то вернет TRUE, если нет, то FALSE
private function isEmpty($tableName)
{

if (self::$NAMES) echo __METHOD__;

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;

}

}

}



Как я понимаю, этот вариант не срабатывает почему-то, может лучше воспользоваться предикатом SQL EXISTS, только как это сделать в MySQLi никто не подскажет?



Спустя 2 часа, 43 минуты, 54 секунды (9.06.2012 - 12:08) T1grOK написал(а):
Опять та же ошибка. $result - экземпляр класса mysqli_stmt и он не содержит свойства num_rows. execute() возвращает экземпляр класса mysqli_result, num_rows является одним из его свойств.
$result->bind_param("s",$tableName);
$res = $result->execute();
$row_cnt = $res->num_rows;


Нет php.net не работает.

Спустя 2 минуты, 54 секунды (9.06.2012 - 12:11) Stasonix написал(а):
иии? Да без php.net стремно чето. Я не вижу примеров (вообще где-нть), не могу решить эту задачу, как это ни печально звучит.

Спустя 15 минут, 31 секунда (9.06.2012 - 12:27) Stasonix написал(а):
Ладно, все, отставить. Мой бедный мозк нашел решение ==>

$mysqli = new mysqli("localhost","root","","mydb");

if ($result = $mysqli->query("SELECT * FROM `table` LIMIT 1"))
{

if ($obj = $result->fetch_object())
{

echo "NOT EMPTY";

}
else
{

echo "empty";

}


$result->close();

}
$mysqli->close();


и усё.

Спустя 53 минуты, 7 секунд (9.06.2012 - 13:20) T1grOK написал(а):
Гоню. С prepare немного не так

$result->bind_param("s",$tableName);
$result->execute();
$result->store_result();
$row_cnt = $result->num_rows;

Спустя 1 минута, 34 секунды (9.06.2012 - 13:21) T1grOK написал(а):
Вот только сомневаюсь, что без названия таблицы prepare сработает.

Спустя 5 минут, 44 секунды (9.06.2012 - 13:27) Stasonix написал(а):
я думаю не стоит имя таблицы prepare'ить, можно просто сразу в запрос переменную вбить, но кто знает... а вдруг кому-то понадобиться имя таблицы со стороны клиента получить, тогда конечно надо тестить, но для меня не актуально уже. Вам слово (если получится, если нет, сам протестю, только позже).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.