php - 转换为准备好的语句 - 如何回显查询结果

标签 php mysql prepared-statement

我第一次将查询转换为准备好的语句,但我无法弄清楚如何提取数据...

这是我的代码:

/* Create a new mysqli object with database connection parameters */
$mysqli = new mysqli($hostname_db, $username_db, $password_db, $database_db);
if(mysqli_connect_errno()) {
  echo "Connection Failed: " . mysqli_connect_errno();
  exit();
}

   if($stmt = $mysqli -> prepare("SELECT name FROM table WHERE id=?")) {
      /* Bind parameters, s - string, b - blob, i - int, etc */
      $stmt -> bind_param("i", $rid);
      $stmt -> execute();
      $stmt -> bind_result($result);
      $stmt -> fetch();
      $stmt -> close();
   }    
   $mysqli -> close();

在此示例中,我能够在页面正文中显示结果,如下所示:

<?php echo $results; ?>

但是,当我更改上面示例中的查询以获取所有字段时,我无法弄清楚如何显示它:

SELECT * FROM table WHERE id = ? 

这不起作用:

<?php echo $results['id'] ?>

我在这里缺少什么?如何显示该查询中的随机字段名称?

谢谢!!

最佳答案

您必须考虑像这样一一存储列:

$stmt->execute();

$stmt->bind_result($col1, $col2);

或使用 this answer 中的代码,它为您提供所有列的数组,而无需相互指定。

关于php - 转换为准备好的语句 - 如何回显查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16722005/

相关文章:

php - 如何删除选定的用户?磷酸二氢钾

php - AJAX 如何获取返回值和数据库连接

mysql - 更换WP数据库时出现问题

java - 如果引用被覆盖,PreparedStatement 会留下 "open"吗?

javascript - 我自己对 codeigniter 中的默认 .htaccess 文件进行了一些更改,现在我的注销链接不起作用

php - 如何使用 PHP 将一个 SQL 命令的返回值插入到另一个表中

java - 在查询中设置为 null 的准备好的语句不返回任何记录

php - 准备好的查询字符串

mysql - 获取 OrderAmount 的 SUM Total,其中 DueDate 在 1 - 30 天之间

mysql - 如何有效地插入新行或更新现有行?