Re: Sqlite 3 pdo update query problem
| From: | Neil Smith [MVP, Digital media] | 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]