Не могу получить подготовленное заявление для печати в php

0

Я пытаюсь справиться с mysqli но mysqli это борьбой по сравнению с теперь обесцененным mysql. До сих пор со старыми методами я мог получить информацию о моих таблицах в ассоциативном массиве. Я пытаюсь сформировать подготовленное выражение и echo номер id обратно. Я также хотел бы иметь возможность распечатать весь sql, который был привязан, но, поскольку я не могу даже повторить номер id из одного SELECT, на данный момент это может быть и речи.

$db = new mysqli('xxx', 'xx', 'xx', 'xxxx');

$sql = "SELECT user_id, name FROM users WHERE name=?"

$statement = $db -> prepare($sql);

$statement -> bind_param("s", "Emma");

$statement -> execute();

$statement -> bind_result($id, $name);

$output = $statement -> fetch();

echo $output -> $id . " " . $name;

Кажется, я bind_result на линии bind_result. Я понял, является ли statement объектом, тогда я должен быть в состоянии echo их в той форме, которую я разработал? Когда я обновляю свою страницу, я просто ничего не получаю. У меня есть 2 записи в моей таблице, и у 1 из них есть строка имени, которая используется выше.

Теги:
mysqli

1 ответ

0
Лучший ответ

Вы считаете слишком сложным. Просто попробуйте следующее:

$db = new mysqli('xxx', 'xx', 'xx', 'xxxx');
$sql = "SELECT user_id, name FROM users WHERE name=?";
$statement = $db->prepare($sql);
$statement->bind_param("s", "Emma");
$statement->execute();
$statement->bind_result($id, $name);
while ($statement->fetch()) {
  echo $id . " " . $name;
}

bind_result() заботятся о том, что для каждого выполняемого вами $statement->fetch() вы получаете свежие значения в переменных $id и $name.

Вы должны взглянуть на хорошую документацию этих методов.

  • 0
    Спасибо - так что же возвращает fetch ? логическое значение? Так statement->fetch всегда должна быть в while цикл? Его странно видимые переменные, такие как %id когда они не были определены обычным образом, например, $id = $_GET['id'] или $id = 5 и т. Д.
  • 0
    Ваш комментарий говорит о том, что вы не просматривали документацию, так как это сразу же ответило бы на ваши вопросы. Могу я спросить, почему?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню