【问题标题】:PHP SELECT * Using Prepared statement then store results in arrayPHP SELECT * 使用 Prepared 语句然后将结果存储在数组中
【发布时间】:2017-02-02 13:44:06
【问题描述】:

好的,所以目前如果我想从数据库表中获取所有数据并将结果存储在数组中,我会这样做

$mysqliCon = new mysqli(blah blah);
    $example = $mysqliCon->query("SELECT * FROM `tabl` WHERE `example`='example';");
    $exampleArray = Array();
    while($result = $example->fetch_assoc()){
        $exampleArray[] = $result['exampleData'];
    }

如果我想访问exampleData,它将存储在数组$exampleArray中,例如
echo $exampleArray[1];

但我的问题是我怎样才能使用准备好的语句做到这一点?

【问题讨论】:

  • 从手册 @​​987654321@ 开始 - 真的应该没有太多其他内容了。你使用占位符,绑定并执行。
  • 严格来说SO != 一个代码转换服务
  • 尝试一下,如果遇到问题,请再次提出您在代码转换方面的尝试

标签: php arrays security mysqli prepared-statement


【解决方案1】:

这实际上是一个很好的问题,因为从 mysqli 中的准备好的语句中获取结果是一件棘手的事情。

所以,基本上你有两种可能性。

如果您的系统中有 mysqli_result() 函数可用,您可以这样做:

$example = 'example';
$stmt = $mysqli->prepare("SELECT * FROM `tabl` WHERE `example`=?");
$stmt->bind_param("s", $example);
$stmt->execute();
$exampleArray = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);

但不保证此功能可用。在这种情况下,忘记 mysqli 并开始使用 PDO。这是您使用 PDO 的代码

$stmt = $pdo->prepare("SELECT * FROM `tabl` WHERE `example`=?");
$stmt->execute(['example']);
$exampleArray = $stmt->fetchAll();

【讨论】:

    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多