2012-09-19 5 views
1

나는 PhP를 처음 사용합니다. 내 sqlite 데이터베이스에서 일부 행을 삭제하려면 노력하고있어,하지만 난 잘못 알아낼 수 없습니다.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,
감사합니다.

+2

'mysql_error'는 PDO에서 발생한 오류를 볼 수 없습니다. ['PDO :: errorInfo'] (http://us.php.net/manual/en/pdo.errorinfo.php)를 대신 사용하십시오. 준비된 진술을 살펴보십시오. – DCoder

답변

4

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(); 
    } 
?> 
+1

PDO가 예외를 발생 시키려면 몇 가지 추가 코드가 필요합니다 : ['$ dbh-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);'] (http://us.php.net/manual/en/pdo. error-handling.php). – DCoder

관련 문제