Я пытаюсь справиться с 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 из них есть строка имени, которая используется выше.
Вы считаете слишком сложным. Просто попробуйте следующее:
$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
.
Вы должны взглянуть на хорошую документацию этих методов.
fetch
? логическое значение? Такstatement->fetch
всегда должна быть вwhile
цикл? Его странно видимые переменные, такие как%id
когда они не были определены обычным образом, например,$id = $_GET['id']
или$id = 5
и т. Д.