无法获得准备好的语句在php中打印

时间:2014-11-08 15:44:00

标签: php 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行。我想如果statement是一个对象,那么我应该能够以我设计的形式echo这些对象?当我刷新页面时,我什么都没得到。我的表中有2个条目,其中1个条目具有上面使用的名称字符串。

1 个答案:

答案 0 :(得分: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中获得新值。

你应该看看这些方法的好documentation