2016-09-25 19 views
0

オクラホマので、のは私が(プリペアドステートメントを使用して)このようなクエリでEXAMPLEDATEのすべての値を取得する方法をこのPHPを選択し、プリペアドステートメントでの1つの以上の結果

//table name is: exampleTable 
_________________________ 
| ID | NAME | EXAMPLEDATA | 
|----|------|-------------| 
| 0 | TOD | a123  | 
| 1 | JEF | 142b  | 
| 2 | MAX | c412  | 
| 3 | TOD | 124d  | 
| 4 | TOD | e634  | 
| 5 | MAX | 233f  | 
| 6 | MAX | g444  | 
|____|______|_____________| 

のようなデータベースを持っていると仮定しましょう

配列へ

SELECT EXAMPLEDATA FROM exampleTable WHERE NAME = 'TOD'

とストア結果ので、私はこのようにそれにアクセスすることができます

$todArray[0] // equals a123 
$todArray[1] // equals 124d 
$todArray[2] // equals e634 

私は準備された文を使用して結果を得る方法を知っている唯一の方法は、bind_resultを使用することですが、それは結果を取って、上記のような配列に入れません。

まず、私がすることを好む:だからここ

は、私が試したが、それは

$TOD = "TOD"; 
$dbCON = new mysqli(blah, blah, blah, blah); 
$getData = $dbCON->prepare("SELECT `EXAMPLEDATA` FROM `exampleTable` WHERE `NAME`=?"); 
$getData->bind_param("s", $NAMEVAR); 
$NAMEVAR = $TOD; 
$getData->execute(); 
$getData->bind_result($todArray); 
$getData->fetch(); 
$getData->close(); 

を仕事に失敗したすべてのヘルプは感謝:)

答えて

0

あなたがこれを行うことができますが認識されるであろうものですdb接続をmysqliからPDOに変更します。

今、あなたはPDOでこのようなクエリを入力することができますすることができます

<?php 

      $servername = "your server name"; 
      $username = "your username"; 
      $password = "your password"; 
      $database = "your database name"; 

      try { 
        $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password); 
        // set the PDO error mode to exception 
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
       } 
      catch(PDOException $e) 
       { 
        echo "Connection failed: " . $e->getMessage(); 
       } 
      // End of database connection 

      $TOD = "TOD"; 
      $fetchdata = $conn->prepare("SELECT EXAMPLEDATA FROM exampleTable WHHERE NAME = ?"); 
      $fetchdata->execute(array($TOD)); 

      if($fetchdata) 
       { 
        while($fd = $fetchdata->fetch(PDO::FETCH_ASSOC)) 
        { 
         echo $fd['EXAMPLEDATA']."\n"; 
        } 
       } 
      else 
       { 
        echo "Query did not executed"; 
       } 

?> 

今、あなたがこれを行うことにより、配列のフェッチされたデータを保存することができます

if($fetchdata) 
     { 
      $ResultsArray = array(); 

      while($fd = $fetchdata->fetch(PDO::FETCH_ASSOC)) 
       { 
        $ResultsArray[] = $fd['EXAMPLEDATA']; 
       } 
     } 

編集を:これはmysqliのコード(ありますテストされていない)

$TOD = "TOD"; 
$dbCON = new mysqli(blah, blah, blah, blah); 
$getData = $dbCON->prepare("SELECT `EXAMPLEDATA` FROM `exampleTable` WHERE `NAME`=?"); 
$NAMEVAR = $TOD; 
$getData->bind_param("s", $NAMEVAR); 
$getData->execute(); 
call_user_func_array(array($mysqli_stmt_object,"bind_result"),$AnArray); 
$ResultsArray = array(); 

while ($mysqli_stmt_object->fetch()) { 
    $results[] = $AnArray; 
} 

$getData->close(); 

?> 

あなたはもっとここに見つけることができます:

Mysqli - Bind results to an Array

mysqliのでイム申し訳ありませんイムよくない、コードが動作願っていますが、私は本当にあなたがそのはるかに簡単PDOを、使用を開始することをお勧めします。

+0

PDOは私のためには機能しません..何かの理由で私のために存在しません。私はそれを呼び出そうとすると、関数が存在しないと言ってPHPエラーが発生します。私はmysqliを使用することができます – geegeeWap

+0

私はmysqliに戻ってそれを変更しようとしましょう – Laith

関連する問題