2017-09-10 5 views
0

クエリから値を取得するために使用するこの関数があります。私は実行や文法に間違ったことをしているかもしれません。その中のデータを使ってクエリを実行しようとすると問題ありませんが、これは0個のアイテムを返します。クエリから値を返すことになっている関数

public function get_modified_event ($type, $id, $employee_id) 
     { 
      global $dbh; 
      $sql =<<<SQL 

        SELECT outlook_id 
         FROM dba.events 
        WHERE spine_item_type = :type 
        AND spine_id = :id 
        AND employee_id = :employee_id 
SQL; 

      $stmt = $dbh->prepare($sql); 
      $stmt->execute(array(
        'id' => $id, 
        'type' => $type, 
        'employee_id' => $employee_id, 

      )); 
        $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC); 
        return $rows['outlook_id']; 
     } 
+1

まず、「グローバル」は使用しないでください。それは吸う。私はユニットテストをしないと仮定しますが、それでも 'global'は使用しないでください。それは吸う。それ以外の場合は、あなたの基準に一致するレコードがないので、おそらくそれが返されます。クエリを表示し、手動で実行し、 –

+0

@MarcinOrlowskiを参照してください。私はすでに手で実行しようとしましたが、 – TMA

+1

@TMAの値を取得します。$ spine_typeはどこから来たのですか? – slevy1

答えて

0

あなたはそれが形式のこの種を使用するようにコードの一部を作り直してみてください:

$stmt = $dbh->prepare($sql); 
if ($stmt->execute(/* your array goes here */)) { 
     $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
     if ($rows !== FALSE){ 
        print_r($rows); 
     } 
     else 
     if ($stmt->rowCount() === 0) { 
      echo "The info provided is unknown to the database"; 
     } 
} 

うまくいけば、あなたはいくつかの意味のある結果を得るでしょう。

+1

ありがとう!うーん、実行部分で失敗する...あなたが私を助けることができるこのクエリを書き換えるための他の方法はありますか? – TMA

+1

私はそれが助けたのでそれを受け入れるだろう:) – TMA

関連する問題