Re: Sqlite 3 pdo update query problem

From: Date: Wed, 20 Aug 2008 12:40:07 +0000
Subject: Re: Sqlite 3 pdo update query problem
References: 1  Groups: php.db 
Request: Send a blank email to php-db+get-45241@lists.php.net to get a copy of this message
At 09:15 20/08/2008, you wrote:
Message-Id: <D008FE9E-BBAA-4B1C-A854-42A97323B73E@willowtreecrafts.co.uk> From: Amy Gibbs <amy@willowtreecrafts.co.uk> Date: Wed, 20 Aug 2008 09:08:42 +0100 I've managed to connect to my database, and run a select query, but now I need to run an UPDATE query and it just doesn't seem to take effect.
Things I'd try or check presuming the DB file it exists and returns rows from the SELECT : (1) Ensure the SQLite DB file is not set to read-only in the filesystem, which will prevent UPDATE (2) Echo out the $sql line below on each iteration, to ensure it contains what you intend, and not unclosed quotes (3) Set $sesdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Step 3 should make your code barf when it can't execute a query and immediately indicate the problem. For some reason, PDO seems to default to silent errors at least when using the SQLite interface HTH Cheers - Neil
$sesdb = new PDO('sqlite:file.sqlite3'); $query="SELECT ZNAME, ZQUANTITY, ZPRODUCTID FROM ZITEM WHERE ZCategory != 14"; $statement= $sesdb->query($query); $result=$statement->fetchAll(); foreach ($result as $product) { $prodname=$product[0]; $prodqty = $product[1]; $prodid=$product[2]; $sql = "UPDATE ZITEM SET ZQUANTITY='0' WHERE ZPRODUCTID='".$prodid."'"; $sesdb->exec($sql); } [/code]


« previous php.db (#45241) next »