1

私はPhPが初めてです。sqlite データベースからいくつかの行を削除しようとしていますが、何が問題なのかわかりません。私のコードは以下の通りです:

<?php
    $app_name=array("TestApp", "MyDataBase");
    $dir = 'sqlite:/home/ravi/public_html/GcmServer/FavoriteApps.db';
    $dbh= new PDO($dir) or die("cannot open the database");
    for($i=0;$i<sizeof($app_name);$i++) {
        error_log("looop start here...............");
        error_log("FirstAppName ".$app_name[$i]);
        $result=  $dbh->Query("DELETE FROM favorite_apps WHERE appname = '$app_name[$i]'") or die( error_log("error".mysql_error() ));
        error_log("looop execute here...............");
    }
?>

そして、私のログファイルは次のようなものです:

[Wed Sep 19 11:16:38 2012] [error] [client 127.0.0.1] looop start    here...............
[Wed Sep 19 11:16:38 2012] [error] [client 127.0.0.1] FirstAppName TestApp
[Wed Sep 19 11:16:38 2012] [error] [client 127.0.0.1] error

そして私のローカルホストは1を表示します、
ありがとう。

4

1 に答える 1

6

関数を使用してmysql_error()いますが、データベースは sqlite であり、エラー処理がまったく異なる PDO を使用しています。try-catch詳細情報を表示するには、コードをブロックにカプセル化してみてください。

<?php
  $app_name=array("TestApp", "MyDataBase");
  $dir = 'sqlite:/home/ravi/public_html/GcmServer/FavoriteApps.db';
  $dbh= new PDO($dir) or die("cannot open the database");
  try {
    for($i=0;$i<sizeof($app_name);$i++) {
      error_log("looop start here...............");
      error_log("FirstAppName ".$app_name[$i]);
      $dbh->Query("DELETE FROM favorite_apps WHERE appname = '$app_name[$i]'");
      error_log("looop execute here...............");
    }
  } catch (PDOException $e) {
    echo $e->getMessage();
  }
?>
于 2012-09-19T06:09:17.427 に答える