Esempio n. 1
0
 /**
  * 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());
 }
Esempio n. 2
0
    /**
     * 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());
    }
Esempio n. 3
0
 /**
  * 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());
 }