2016-09-24 87 views
0

好了,所以现在如果我想获取数组从数据库表中,结果存储的所有数据我这样做PHP SELECT *使用预处理语句,然后将结果存储在阵列

$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

开始与手动http://php.net/manual/en/mysqli.quickstart.prepared-statements.php你的代码 - 不应该有很多其他这真的。您使用占位符,绑定和执行。 –

+0

严格** SO!=代码转换服务** – RiggsFolly

+0

尝试一下,如果有问题,再次询问您是否尝试了代码转换 – RiggsFolly

回答

0

这实际上是一个很好的问题,这要归功于从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();