Я пытаюсь преобразовать MySQL в MySQLi. И я не могу понять, почему он тормозитКак реализовать MySQLi вложенные подготовленные операторы?
$stmt2->execute();
и возвращает сообщение об ошибке:
Call to a member function execute() on a non-object
Любой вопрос или действительного осуществления этого !?
// SQL condition "WHERE group=''" where `group` is empty (NULL)
$result = "SELECT id, name FROM table WHERE group='' ORDER BY array ASC";
if ($stmt = $mysqli->prepare($result)) {
$stmt->execute();
$stmt->bind_result($id, $name);
while ($stmt->fetch()) {
// SQL condition "WHERE group='$id'" where $id defined in $stmt->bind_result($id, $name);
$result2 = "SELECT name FROM table WHERE group='$id' ORDER BY array ASC";
$stmt2 = $mysqli->prepare($result2);
//$valid_stmt2 = $stmt2 === FALSE ? false : true;
echo $name . "\n";
//if ($valid_stmt2) {
// Error cased on $stmt2->execute();
$stmt2->execute();
$stmt2->bind_result($name2);
while ($stmt2->fetch()) {
echo 'related to: ' . $name2 . "\n";
}
$stmt2->close();
//}
}
$stmt->free_result();
$stmt->close();
}
Этот вопрос может быть связан с Possible to use multiple/nested MySQLi statements? К сожалению, я не считаю полезным, так как он не обеспечивает правильный пример или ресурс для выдачи.
Обновление: упрощенный пример кода с комментариями.
@hakre Это не дублирование http://stackoverflow.com/questions/8999691/call -в-а-член-функции-выполнить-на-не-объект. Я изменяю '$ stmt2 = $ mysqli-> prepare (" SELECT url, name FROM links WHERE group = '?' ORDER BY array ASC ");' и добавлен '$ stmt2-> bind_param (" i ", $ id); ', но он все равно не работает. Любой может предоставить рабочий пример? Второй 'while()' должен возвращать результаты запроса на основе своего условия - '$ id' из первого' while() '. – Binyamin
Нелепо, как сообщество рассматривает этот вопрос как точный дубликат http://stackoverflow.com/questions/8999691/call-to-a-member-function-execute-on-a-non-object. Запрошенная повторная проверка. – Binyamin