public function testInsertWithQuestionMark() { $driver = new MySQLDriver(); $driver->setQMarkParamMarker(); $args = new ArgumentArray(); $query = new InsertQuery(); $query->option('LOW_PRIORITY', 'IGNORE'); $query->insert(['name' => new Bind('name', 'John'), 'confirmed' => new Bind('confirmed', true)])->into('users'); $query->returning('id'); $sql = $query->toSql($driver, $args); $this->assertEquals('INSERT LOW_PRIORITY IGNORE INTO users (name,confirmed) VALUES (?,?)', $sql); }
public function testSimpleJoin() { $args = new ArgumentArray(); $driver = new MySQLDriver(); $driver->setQuoteColumn(true); $query = new SelectQuery(); ok($query); $query->select(array('u.id', 'u.name', 'u.phone', 'u.address', 'p.title' => 'post_title'))->from('users', 'u')->join('posts')->as('p')->on('p.user_id = u.id'); $query->where('u.name LIKE :name', [':name' => '%John%']); ok($query->getJoins()); $sql = $query->toSql($driver, $args); is('SELECT u.id, u.name, u.phone, u.address, p.title AS post_title FROM users AS u JOIN posts AS p ON (p.user_id = u.id) WHERE u.name LIKE :name', $sql); }
public function testSetQuoter() { $conn = $this->createConnection('mysql'); $driver = new MySQLDriver(); $driver->setQuoter(function ($str) use($conn) { return $conn->quote($str); }); $this->assertEquals("'str'", $driver->quote('str')); }