2016-03-27 10 views
0

Im PDOに少し問題があります。 約2分前に別の質問を投稿しましたが、これはかなり早く回答されましたが、別のエラーが発生しました。ここでPDO :: query()は、パラメータ1が文字列、オブジェクトが指定されていると想定しています。警告

は、コードは次のとおりです。

   $hostname='localhost'; 
     $username='Elmad2'; 
     $password='*******'; 
     try { 
      $dbh = new PDO("mysql:host=$hostname;dbname=portals",$username,$password); 
      $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
      $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
      $stmt = $dbh->prepare('SELECT * FROM docenten'); 
      $stmt->setFetchMode(PDO::FETCH_ASSOC); 
      $stmt->execute(); 
      $Result = $stmt->fetchAll(); 

ライン81 >> IF($ dbh->クエリ($ stmtは)){

   foreach ($Result as $row) { 


        echo '<div class="item"><a href="teachers/item.php?id=' . $row[id] . '"> 
     <h1 class="title">' . $row[title]. '</h1></a> 
     <h3 class="author">Geplaatst door: ' . $row[info_bys] . '</h3><span class="description">' . $row[info_shorts] . '</span><br><img src="../' . $row[filepath] . '" class="item-image"><br> 
     <a href="teachers/item.php?id='.$row[id].'"><button type="button" class="read_more btn btn-primary">Lees meer</button></a> 
    </div>'; 



       } 
      } 
      else{ 
       echo 'error'; 
      } 

$dbh = null; 
} 
catch(PDOException $e) 
{ 
echo $e->getMessage(); 
} 

そして、ここではエラーです:

Warning: PDO::query() expects parameter 1 to be string, object given in >/home/ubuntu/workspace/portals/teachers.php on line 81

誰かが私を助けてくれることを願っています。

ありがとう。

+1

既にデータを実行してフェッチしましたが、そのクエリ呼び出しで何をしたいですか? – Rizier123

+0

だから私は81行を削除する必要がありますか? –

+0

はい、if-else文全体です。 – Rizier123

答えて

1

PDO::query()に電話する必要はありません。準備されたステートメントの場合は、PDO::prepare()を呼び出し、PDOStatement::execute()がクエリを実行し、PDOStatement::fetch*を使用して結果を取得できます。

PDO::query()は、動的SQLでのみ使用されます。それは引数としての文字列 SQLクエリステートメントなどをとります。 SELECTステートメント& c。

0

@ rizier123が私の質問に答えました。

if文を削除し、行データに引用符を追加するだけでした。

ありがとう@ @ rizier123