summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Statements/InsertStatement.php4
-rw-r--r--src/Statements/ReplaceStatement.php3
-rw-r--r--tests/Builder/InsertStatementTest.php11
-rw-r--r--tests/Builder/ReplaceStatementTest.php12
4 files changed, 27 insertions, 3 deletions
diff --git a/src/Statements/InsertStatement.php b/src/Statements/InsertStatement.php
index 5e52117..265929d 100644
--- a/src/Statements/InsertStatement.php
+++ b/src/Statements/InsertStatement.php
@@ -110,8 +110,8 @@ class InsertStatement extends Statement
*/
public function build()
{
- $ret = 'INSERT ' . $this->options
- . 'INTO ' . $this->into;
+ $ret = 'INSERT ' . $this->options;
+ $ret = trim($ret) . ' INTO ' . $this->into;
if (! is_null($this->values) && count($this->values) > 0) {
$ret .= ' VALUES ' . Array2d::build($this->values);
diff --git a/src/Statements/ReplaceStatement.php b/src/Statements/ReplaceStatement.php
index 6e2fff4..5bb5e12 100644
--- a/src/Statements/ReplaceStatement.php
+++ b/src/Statements/ReplaceStatement.php
@@ -87,7 +87,8 @@ class ReplaceStatement extends Statement
*/
public function build()
{
- $ret = 'REPLACE ' . $this->options . 'INTO ' . $this->into;
+ $ret = 'REPLACE ' . $this->options;
+ $ret = trim($ret) . ' INTO ' . $this->into;
if (! is_null($this->values) && count($this->values) > 0) {
$ret .= ' VALUES ' . Array2d::build($this->values);
diff --git a/tests/Builder/InsertStatementTest.php b/tests/Builder/InsertStatementTest.php
index 84daf3a..cf46143 100644
--- a/tests/Builder/InsertStatementTest.php
+++ b/tests/Builder/InsertStatementTest.php
@@ -63,5 +63,16 @@ class InsertStatementTest extends TestCase
'INSERT INTO tbl SELECT * FROM bar ON DUPLICATE KEY UPDATE baz = 1',
$stmt->build()
);
+
+ /* Assertion 6 */
+ /* INSERT [OPTIONS] INTO ... */
+ $parser = new Parser(
+ 'INSERT DELAYED IGNORE INTO tbl SELECT * FROM bar'
+ );
+ $stmt = $parser->statements[0];
+ $this->assertEquals(
+ 'INSERT DELAYED IGNORE INTO tbl SELECT * FROM bar',
+ $stmt->build()
+ );
}
}
diff --git a/tests/Builder/ReplaceStatementTest.php b/tests/Builder/ReplaceStatementTest.php
index ad0c141..ee5b95a 100644
--- a/tests/Builder/ReplaceStatementTest.php
+++ b/tests/Builder/ReplaceStatementTest.php
@@ -43,4 +43,16 @@ class ReplaceStatementTest extends TestCase
$stmt->build()
);
}
+
+ public function testBuilderSelectDelayed()
+ {
+ $parser = new Parser(
+ 'REPLACE DELAYED INTO tbl(col1, col2, col3) SELECT col1, col2, col3 FROM tbl2'
+ );
+ $stmt = $parser->statements[0];
+ $this->assertEquals(
+ 'REPLACE DELAYED INTO tbl(`col1`, `col2`, `col3`) SELECT col1, col2, col3 FROM tbl2',
+ $stmt->build()
+ );
+ }
}