mercredi 18 février 2015

PHP, SQLITE: I have read but no write access to my database

I set the permissions for my sqlite database to 777, I can read everything but I cant write to the database with php. With python it's working! Here my code:



<?php

$image = htmlspecialchars($_GET["query"]);

$SQLITEdb = "/var/www/log.db";

$db = db_con($SQLITEdb);
$query = $db->query("DELETE FROM log WHERE image = '$image'");

echo "Deleted";

// DB connect
function db_con($DBfile) {
if (!$db = new PDO("sqlite:$DBfile")) {
$e="font-size:23px; text-align:left; color:firebrick; font-weight:bold;";
echo "<b style='".$e."'>Error while open Database: $DBfile:</b><br/>";
echo "<b style='".$e."'>".$db->errorInfo()."</b><br/>";
die;
}
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $db;
}

// DB Query
function db_query($sql) {
global $db;
$result = $db->query($sql) OR db_error($sql,$db->errorInfo());
return $result;
}

// DB errors
function db_error($sql,$error) {
die('<small><font color="#ff0000"><b>[DB ERROR]</b></font></small><br/><br/><font color="#800000"><b>'.$error.'</b><br/><br/>'.$sql.'</font>');
}

// Add HTML character incoding to strings
function db_output($string) {
return htmlspecialchars($string);
}
// Add slashes to incoming data
function db_input($string) {
if (function_exists('mysql_real_escape_string')) {
return mysql_real_escape_string($string);
}
return addslashes($string);
}
?>


I don't get any errors or the text "Deleted."


Aucun commentaire:

Enregistrer un commentaire