Я пытаюсь преобразовать MySQL в 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(); }
Этот вопрос может быть связан с возможностью использования нескольких / вложенных операторов MySQLi? К сожалению, я не счел это полезным, так как он не содержит допустимого примера или ресурса.
Обновление: упрощенный пример кода с комментариями.
Вы сначала сделали
"SELECT id, url, name FROM links WHERE group='' ORDER BY array ASC"
Затем вы хотите использовать $id
для выполнения
"SELECT url, name FROM links WHERE group='$id' ORDER BY array ASC"
Как получить результат для этого? Если группа равна пустой строке, то она не будет равна $id
(только если $id
является пустой строкой, но это не имеет смысла.)