Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : SQLite Functions : sqlite_query

sqlite_query

Executes a query against a given database and returns a result handle (PHP 5, PECL sqlite:1.0-1.0.3)
resource sqlite_query ( resource dbhandle, string query [, int result_type [, string &error_msg]] )
resource sqlite_query ( string query, resource dbhandle [, int result_type [, string &error_msg]] )


Code Examples / Notes » sqlite_query

05-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 Language


Follow Navioo On Twitter
sqlite_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
eXTReMe Tracker