|
sqlite_query
Executes a query against a given database and returns a result handle
(PHP 5, PECL sqlite:1.0-1.0.3)
Code Examples / Notes » sqlite_query05-oct-2004 09:54
While reading the manual at sqlite.org, I can answer for the quotes in strings. You should put two quote to get one. insert into atable values ( '5 O''Clock'); csaba
The function below allows you to submit multiple queries in one shot to a SQLITE database, and will return whatever you would get for the final query. function sqlite_query_multi ($db, $query) { // submit multiple queries (separated by ;) to $db // and return the result from the last one $multiSQL = "/('[^']*'|\"[^\"]*\"|[^;'\"])*;/"; preg_match_all ($multiSQL, "$query;", $aSQL); for ($i=sizeof($aSQL=$aSQL[0]);$i--;) if (!($trim=trim(substr($aSQL[$i],0,-1)))) unset ($aSQL[$i]); else $aSQL[$i] = "$trim;"; foreach ($aSQL as $i => $sql) $dbRes = sqlite_query ($db, $sql); return (@$dbRes); } The section below illustrates the above function: $db = sqlite_open(":memory:", 0666, $sqliteerror); $query = <<<EOD CREATE TABLE foo (bar INTEGER PRIMARY KEY, baz TEXT); INSERT INTO foo VALUES (Null, 'Hi'); INSERT INTO foo VALUES (Null, 'Mom'); SELECT * FROM foo; EOD; $dbRes = sqlite_query_multi ($db, $query); // 4 statements while (sqlite_has_more($dbRes)) var_dump(sqlite_fetch_array($dbRes, SQLITE_ASSOC)); Csaba Gabor jason
sqlite_open will return NULL if the web server cannot write to the sqlite database file. I saw the following message in my web server error log: PHP Warning: sqlite_query(): (null) ... It turns out that the sqlite database file was owned by a user other than the one the web server was running as. In my case, it was a Linux system running Apache (which was running under the context of user apache). The sqlite database file was owned by root. I changed ownership of the file to user apache and now it works! The sqlite_open call now returns a valid result handle. Jason Aeschilman |
Change Languagesqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_exec sqlite_factory sqlite_fetch_all sqlite_fetch_array sqlite_fetch_column_types sqlite_fetch_object sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_has_prev sqlite_key sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen sqlite_prev sqlite_query sqlite_rewind sqlite_seek sqlite_single_query sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query sqlite_valid |