PHP SELECT *使用Prepared语句然后将结果存储在数组中

时间:2016-09-24 23:57:22

标签: php arrays security mysqli prepared-statement

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

$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];

但我的问题是如何使用准备好的陈述来完成相同的操作呢?

1 个答案:

答案 0 :(得分: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并开始使用PDO。这是您使用PDO的代码

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