2017-05-04 9 views
1

を使用している間、私はエラーにキャッチされない例外 'PDOException' PDOのラッパークラス

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty' in C:\xampp\htdocs\mysite\include\SimplePDO.php:200 Stack trace: #0 C:\xampp\htdocs\mysite\include\SimplePDO.php(200): PDO->prepare('') #1 C:\xampp\htdocs\mysite\include\SimplePDO.php(244): SimplePDO->query(false, Array, true) #2 C:\xampp\htdocs\mysite\articles.php(57): SimplePDO->get_results(false) #3 {main} thrown in C:\xampp\htdocs\mysite\include\SimplePDO.php on line 200 

ラッパークラスコードを次取得しています試してみてください:

$q1 = $database1->query("SELECT * FROM sa_articleuploads_by_admin WHERE language=? ORDER BY article_upload_date AND article_subject ASC ", array('marathi')); 
$objTotalRS1 = $database1->get_results($q1); 
$counts = 1; 
$len = $database1->num_rows($q1); 

if ($len !=0){ 
    foreach ($objTotalRS1 as $data){ 
    ......////rest of my code 

言語欄があることを確認したところ、間違いがないかチェックしました。しかし、なぜエラーがスローされたのか分からなかった。

I)はPHPのバージョン5.6.15とXAMPPローカルサーバ上でこれをしようとしています

あなたの種類のヘルプが単純である、あなたのquery()メソッドを呼び出します

$objTotalRS1 = $database1->get_results($q1); 

を呼び出す

+0

PDOを別のクラスにラップするのはよくある間違いです。それはメンテナンスの悪夢につながることはありませんし、あなたは完全に動作するソフトウェアにバグを追加するだけです。あなたの会社が採用した次のPHPデベロッパーは、PDOの使い方を知っているかもしれませんが、このラッパーを最初から学ぶ必要があります。 – e4c5

答えて

0

を高く評価$ q1が実行したいSQL文であることを期待しています。だから、get_resultsは、おそらくこれは、(クエリメソッドで)クエリを準備し、get_resultsで結果をフェッチするというアイデアを完了

return $query->fetch(); 

ような何かを行う必要があります。

関連する問題