2016-09-24 92 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();