我正试图掌握mysqli
,但发现与现在贬值的mysql
相比,这是一场斗争。到目前为止,使用旧方法,我已经能够在关联数组中获取有关表的信息。我正在试图形成一个准备好的语句,并将echo
和id
的数字返回。我也希望能够打印已绑定的整个sql
语句,但由于我甚至无法从单个SELECT
语句中回显id
编号,因此目前这是不可能的。
$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
线迷路了。我想如果statement
是一个对象,那么我应该能够以我设计的形式echo
它们?当我刷新页面时,我什么都没有得到。我的表中有两个条目,其中一个条目确实有上面使用的名称字符串。
你想得太复杂了。试试这个:
$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
中获得新值。
您应该查看这些方法的良好文档。