2012-05-09 4 views
2

は、私はこのコードを持っている:SQLiteでSQLエラーを表示するには? (したがって、PDOを使用して)PHPでのSQLiteを使用して

try { 
$db = new PDO("sqlite:C:\Program Files\Spiceworks\db\spiceworks_prod.db"); 

echo "Done.<br /><b>"; 

$query = "SELECT id FROM Devices LIMIT 5"; 

echo "Results: "; 

$result = $db->query($query); 

while ($row = $result->fetchArray()) { 
    print_r($row)."|"; 
} 
} 
catch(PDOException $e) { 
    echo $e->getMessage(); 
} 

をしかし、それはSQLから任意のデータをプリントアウトしません。私は、データベースにデータがあり、接続が有効であることを知っています。クエリを変更して:

何も変更されていません。 SQLから何も出力されず、無効なSQLクエリーであってもエラーは表示されません。

どちらの場合も、「完了」と「結果」が正しく印刷されます。クエリが無効な場合など、SQLエラーをどのように出力できますか?

+0

あなたのPHPファイルでerror_reportingを確認してください。 –

答えて

6

例外をスローするようにPDOに指示する必要があります。

$db = new PDO("sqlite:C:\Program Files\Spiceworks\db\spiceworks_prod.db"); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

あなたが最初の行、データベース接続自体に問題がある可能性を除くすべての例外をキャッチすることができますこの方法:あなたは、データベースに接続した後、次の行を追加することによってそれを行うことができます。