2016-11-22 3 views
0

Ich benutze sqlite und versuche, es über mein PHP-Skript zu verbinden. Die Auswahlabfrage funktioniert, aber die Update-Abfrage funktioniert nicht finden Sie unter dem Code-SchnipselAktualisiere Abfrage auf sqlite3 funktioniert nicht durch PHP PDO

$dir = 'sqlite:/var/www/html/BMKAOAData.db'; 
$dbh = new PDO($dir) or die("cannot open the database"); 

$query = 'update KAOAData set comments = :Comments where aptNo = :aptNo'; 
$stmt= $dbh->prepare($query); 
if(!$stmt){ 
    echo "\nPDO::errorInfo():\n"; 
    print_r($dbh->errorInfo()); 
} 

$stmt->bindParam(':Comments',$myComments,PDO::PARAM_STR); 
$stmt->bindParam(':aptNo',$myaptNo,PDO::PARAM_STR); 
$stmt->execute(); 
$count = $stmt->rowCount(); 
print "Updated $count rows\n"; 

ich viel für seine Lösung gesucht und verschiedene Methoden ausprobiert, aber kann es nicht lösen. Beachten Sie, dass ich die Datenbank im selben Verzeichnis des Skripts habe und dass ich ihr und dem gesamten übergeordneten Verzeichnis die entsprechende Berechtigung erteilt habe. Ich führe die gleiche Abfrage in SQLite Prompt und es funktioniert gut. Bitte helfen Sie dies zu lösen.

+2

Prüfung auf Fehler über die PHP-Fehlerberichterstattung und PDO Ausnahmen lösen, dann kommen zurück und sagen Sie uns, was sie sind. Sie werden hier keine magische Antwort bekommen, übrigens. –

Antwort

0

Vielleicht ist die Datenbank Autocommit auf false gesetzt? In diesem Fall

$dbh->commit(); 

könnte Ihr Problem

+0

Hallo Flavio, nicht wirklich. Infact Commit wäre erforderlich, wenn es in Verbindung mit beginTransaction() gesetzt und verwendet wird. – Gopal

+0

Ja, das war meine Frage: um zu überprüfen, ob der Autocommit der Datenbank auf false gesetzt ist. – flavio

+0

Wenn das nicht das Problem ist, können Sie das Protokoll überprüfen und schließlich einfügen. Was ist der Wert der Variablen $ count nach dem Update? – flavio