diff --git a/sys/db/query_builder.php b/sys/db/query_builder.php index 663ace9..d4b630d 100644 --- a/sys/db/query_builder.php +++ b/sys/db/query_builder.php @@ -424,10 +424,8 @@ class Query_Builder { } // Use the keys of the array to make the insert/update string - $this->set_array_keys = array_keys($this->set_array); - // Escape the field names - $this->set_array_keys = array_map(array($this, 'quote_ident'), $this->set_array_keys); + $this->set_array_keys = array_map(array($this->db, 'quote_ident'), array_keys($this->set_array)); // Generate the "set" string $this->set_string = implode('=?, ', $this->set_array_keys); @@ -587,10 +585,10 @@ class Query_Builder { case "insert": $param_count = count($this->set_array); - $params = array_file(0, $param_count, '?'); - $sql = 'INSERT (' . implode(', ', $this->set_array_keys) . - ') INTO '. $this->quote_ident($table) . - 'VALUES ('.implode(', ', $params).')'; + $params = array_fill(0, $param_count, '?'); + $sql = 'INSERT INTO '. $this->db->quote_ident($table) . + '(' . implode(', ', $this->set_array_keys) . + ') VALUES ('.implode(', ', $params).')'; break; case "delete": @@ -598,6 +596,8 @@ class Query_Builder { break; } + echo $sql.'
'; + return $sql; } } diff --git a/tests/databases/sqlite-qb.php b/tests/databases/sqlite-qb.php index 5270d33..898275f 100644 --- a/tests/databases/sqlite-qb.php +++ b/tests/databases/sqlite-qb.php @@ -100,4 +100,14 @@ $this->assertIsA($query, 'PDOStatement'); } + + function TestInsert() + { + $query = $this->qb->set('id', 4) + ->set('key', 4) + ->set('val', 5) + ->insert('create_test'); + + $this->assertIsA($query, 'PDOStatement'); + } } \ No newline at end of file diff --git a/tests/test_dbs/FB_TEST_DB.FDB b/tests/test_dbs/FB_TEST_DB.FDB index 2a3cf1b..7531aad 100755 Binary files a/tests/test_dbs/FB_TEST_DB.FDB and b/tests/test_dbs/FB_TEST_DB.FDB differ