SQLite basic update and PHP PDO

Posted under » PHP on 24 April 2015

MySQL can be an overkill when all you want is a simple table and not a relational database. SQLite does more than that. It runs on all, I mean all platform and is particularly found in mobile applications.

On the desktop there are free tools you can use. I recommend the cross platform DB Browser for SQLite. Alternatively in Ubuntu, you can use SQLiteman.

For PHP, you must have the PHP library installed first.

Basic Queries with PDO

<¿php 
try {
$dbh = new PDO("sqlite:main.db");
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$dbh->beginTransaction();
$sql = 'select * from umah limit 10';
foreach ($dbh->query($sql) as $row) {
print $row['tetel'] . " - ";
print $row['date'] . "<br>";
}
$dbh->rollback();
?>

PDO is made up of two basic classes, PDO and PDOStatement. PDO represents a connection, which internally contains a sqlite3 structure, and PDOStatement represents a statement handle, which internally contains a sqlite3_stmt structure. The query methods in the PDO class closely follow the methods in the SQLite C API. There are three ways to execute queries:

Additionally, transaction management in PDO can be performed through a method invocation using beginTransaction(), commit(), and rollback(). i

Basic update with PDO

<¿php 
// Create (connect to) SQLite database in file
  $my_conn = new PDO('sqlite:chinook.db');
// Set errormode to exceptions
  $my_conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 
////////////Collect form data/////////////
$co='Mirage Multimedia'; 
$id= 6 ;

///////// End of data collection /// 
$query="UPDATE customers SET Company=:co WHERE CustomerId=:id";
$sql=$my_conn->prepare($query);
$sql->bindParam(':co',$co);
$sql->bindParam(':id',$id);

if($sql->execute()){
echo "Successfully updated record ";
}
else{
print_r($sql->errorInfo()); // if any error is there it will be posted
$msg=" Database problem, please contact site admin ";
}
?>

Sometimes you get the "attempt to write a readonly database" error. If you receive this error while trying to write to a sqlite database (update, delete, drop): Warning: PDO::query() [function.query]: SQLSTATE[HY000]: General error: 1 unable to open database The solution is to make the folder that houses the database file be writeable.

Please read related article for using SQLite with SQLite3 class.

web security linux ubuntu python django git Raspberry apache mysql php drupal cake javascript css AWS data