/** * Returns the last inserted id * @return int */ public function id() { return $this->con->lastInsertRowid(); }
$db = new SQLiteDatabase("./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->singleQuery("SELECT id FROM country_data WHERE cc_code_2='{$row[2]}'"))) { // 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->lastError(); printf("Query Failed %d:%s\n", $err_code, sqlite_error_string($err_code)); exit; } // get ID for the last inserted row $country_id = $db->lastInsertRowid(); } $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);
/** * @param string $stmt * @param string $sql * @param array $params * @param string $colName */ public function insertPreparedAndReturn($stmt, $sql, $params, $colName) { $this->prepare($stmt, $sql); $res = $this->execute($stmt, $params); $this->freeResult($res); return SQLiteDatabase::lastInsertRowid(); }