Sql.php
<?php
namespace Tlf\LilDb\Test;
class Sql extends \Tlf\Tester {
public function testLilSql(){
$this->disable();
$serialized_file = $this->file('test/input/sql/serialized.txt');
file_put_contents($serialized_file, '--nothing--');
$ls = new \Tlf\LilSql();
$ls->load_files($this->file('test/input/sql/'));
$ls->serialize($serialized_file);
$queries = $ls->queries;
// or
$queries = unserialize(file_get_contents($serialized_file));
print_r($queries );
// exit;
// $this->compare_arrays(
// $
// );
}
public function testParseMultiQuery(){
$queries_sql =
"SELECT * FROM `users`;
DELETE FROM `users`;
UPDATE `users` SET `status` = 'banned'; -- delimiter";
$sql = "-- @query(delete.users, ; -- delimiter)
$queries_sql
";
$ls = new \Tlf\LilSql();
$queries = $ls->parse_sql($sql);
print_r($queries);
$this->compare(trim($queries_sql), trim($queries['delete.users']));
}
public function testParseString3(){
$this->disable();
$sql = file_get_contents($this->file('test/input/sql/create.sql'));
$ls = new \Tlf\LilSql();
$queries = $ls->parse_sql(
"
-- @query(user)
CREATE TABLE IF NOT EXISTS `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`is_active` tinyint(1) DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE(`email`)
) ;
-- @query(code)
CREATE TABLE IF NOT EXISTS `code` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL,
`type` varchar(30),
`code` varchar(255) NOT NULL,
`is_active` tinyint(1) NOT NULL DEFAULT '0',
`activated_at` datetime NULL DEFAULT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`expires_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ;
"
);
// echo "\n\n\n-----------\n\n";
// echo "\n\n\n-----------\n\n";
// echo "\n\n\n-----------\n\n";
// echo "\n\n\n-----------\n\n";
// print_r($queries);
// exit;
}
public function testParseString2(){
$this->disable();
$sql = file_get_contents($this->file('test/input/sql/create.sql'));
$ls = new \Tlf\LilSql();
$queries = $ls->parse_sql($sql);
// echo "\n\n\n-----------\n\n";
// echo "\n\n\n-----------\n\n";
// echo "\n\n\n-----------\n\n";
// echo "\n\n\n-----------\n\n";
print_r($queries);
// exit;
}
public function testParseString(){
$sql = "-- ok
-- @query(delete.users, ; -- delimiter)
DELETE FROM `users`; -- delimiter
-- @query(delete.roles, ;)
DELETE FROM `roles`;
-- @query(delete.perms)
DELETE FROM `permissions`;
-- @query(delete.throttles)
DELETE FROM `throttles`;
-- @query(delete.throttles2)
DELETE FROM `throttles2`;
-- @query(delete.throttles3)
DELETE FROM `throttles3`;
";
$ls = new \Tlf\LilSql();
$queries = $ls->parse_sql($sql);
print_r($queries);
$this->compare_arrays(
['delete.users'=>'DELETE FROM `users`; -- delimiter',
'delete.roles'=>'DELETE FROM `roles`;',
'delete.perms'=>'DELETE FROM `permissions`;',
'delete.throttles'=>'DELETE FROM `throttles`;',
'delete.throttles2'=>'DELETE FROM `throttles2`;',
'delete.throttles3'=>'DELETE FROM `throttles3`;',
]
,$queries
);
}
}