PHP 5.3.19 및 SQLite3을 사용하고 있으며 PHP를 사용하여 테이블에 행을 추가 할 수없는 것 같습니다. 오류 메시지. 내가 선택을 할 수 있지만 INSERT가 작동하지 않습니다.PHP가 포함 된 SQLite3에 행을 추가 할 수 없습니다. 오류 메시지가 표시되지 않습니다.
코드 :
try {
$dbh = new PDO("sqlite:database.db");
$dbh->exec("INSERT INTO TABLE_NAME (COL1, COL2, COL3) VALUES (null, $var1, $var2)");
echo "Row added";
}
catch(PDOException $e) {
echo $e->getMessage();
echo "<br><br>Database <b>NOT</b> loaded successfully. ";
die("<br><br>Query Closed! $error");
}
이 오류 메시지없이 실행하지만 항목이 저장되지 않습니다.
디렉토리는 webservd가 소유하고 있으며 webservd가 쓸 수 있으므로 실제로 어떤 문제인지 모르겠습니다. CLI를 통해 PHP 스크립트를 실행할 때도 아무 것도하지 않지만 수동으로 행을 입력하면 작동합니다.
PHP와 SQLite3에 대한 다른 게시물 (특히 Unable to write to a chmod 777 database file on SQlite3 via php 5.3.0)을 확인했지만 대답을 찾을 수 없습니다.
나는 무엇이 있습니까?
미리 도움 주셔서 감사합니다.
PDO를 예외 모드로 설정하고 삽입이 실패 할 때 예외를 잡는 이유는 무엇입니까? 또한 exec()는 영향을받는 행 수를 반환합니다. 그 번호를 확인해 보는게 어때? 예외를 잡으면 잘못된 위치를 알 수 있습니다. CodeSlayer가 대답에 언급 한 것처럼 - 삽입되는 값을 인용하지 않았습니다. –
예외 모드로 설정했지만 아무 것도 던지지 않습니다. – Cristina
게시 한 코드는 예외 모드에서 PDO를 설정하는 방법이 아닙니다. 다른 문제는 SQL 인젝션에 취약하다는 것입니다. 당신은 그 변수들을 사용자 입력이나 무엇으로 받아 들여야합니까? –