<?php $db = new sqlite_db(":memory:"); $db->query("CREATE TABLE foobar (id INTEGER PRIMARY KEY, misc CHAR(10))"); $db->query("INSERT INTO foobar (misc) VALUES('Marcus');\n\t\t\tINSERT INTO foobar (misc) VALUES('Ilia')"); /* When performing multiple inserts within a single query * only the id of very last insert is returned */ echo "Last id: " . $db->last_insert_rowid() . "<br />\n"; echo '<pre>'; print_r($db->array_query("SELECT * FROM foobar", SQLITE_ASSOC)); echo '</pre>';
$db = new sqlite_db("./ip.db"); // begin transaction $db->query("BEGIN"); $fp = fopen("./ip-to-country.csv", "r"); $query_str = ''; while ($row = fgetcsv($fp, 4096)) { foreach ($row as $key => $val) { // secure data $row[$key] = sqlite_escape_string($val); } // check for existance of a country in db if (!($country_id = $db->single_query("SELECT id FROM country_data WHERE cc_code_2='{$cc}'"))) { // add new country if (!$db->query("INSERT INTO country_data \n\t\t\t(cc_code_2, cc_code_3, country_name) \n\t\t\tVALUES('{$row[2]}', '{$row[3]}', '{$row[4]}')")) { // fetch error $err_code = $db->last_error(); printf("Query Failed %d:%s\n", $err_code, sqlite_error_string($err_code)); exit; } // get ID for the last inserted row $country_id = $db->last_insert_rowid(); } $query_str .= "INSERT INTO ip_ranges \n\t\t\t(ip_start, ip_end, country_code)\n\t\t\tVALUES({$row[0]}, {$row[1]}, {$country_id});"; } // insert IP data via a chained query $db->query($query_str); // finalize transaction $db->query("COMMIT"); fclose($fp); // close database 'hack' unset($db);