/** * INSERT ... SELECT * * @covers Phossa\Query\Dialect\Common::insert() */ public function testInsert03() { // 2 seperate rows $str1 = 'INSERT INTO "users" ("uid", "uname") SELECT "user_id", "user_name" FROM "oldusers"'; $ins1 = $this->builder->insert()->into("users")->set(['uid', 'uname'])->select(['user_id', 'user_name'])->from('oldusers'); $this->assertEquals(preg_replace("/\r\n/", "\n", $str1), $ins1->getStatement()); }
/** * insert * * @covers Phossa\Query\Dialect\Mysql::insert() */ public function testInsert01() { $str = <<<EOT INSERT DELAYED PARTITION (part1, part2) (`uid`, `uname`) VALUES (2, 'phossa') ON DUPLICATE KEY UPDATE uid = uid + 1, uname = CONCAT(uname, 'xx') EOT; $this->assertEquals(preg_replace("/\r\n/", "\n", $str), $this->builder->insert()->addHint('DELAYED')->set(['uid' => 2, 'uname' => 'phossa'])->partition(['part1', 'part2'])->onDup('uid', 'uid + 1')->onDup('uname', 'CONCAT(uname, \'xx\')')->getStatement()); }
/** * example17: before & after * * @covers Phossa\Query\Dialect\Common::before() * @covers Phossa\Query\Dialect\Common::after() */ public function testReadme17() { // builder object $users = new Builder(new Common(), 'users'); // 01: before & after $this->assertEquals('INSERT IGNORE INTO "users" ("id", "name") VALUES (3, \'phossa\') ON DUPLICATE KEY UPDATE id=id+10', $users->insert()->set('id', 3)->set('name', 'phossa')->before('INTO', 'IGNORE')->after('VALUES', 'ON DUPLICATE KEY UPDATE id=id+?', 10)->getStatement()); }