easy-swoole / easyswoole

swoole,easyswoole,swoole framework
https://www.easyswoole.com/
Apache License 2.0
4.74k stars 511 forks source link

getLastQuery() 打印的sql特殊字符未转义 #482

Closed kzkzzzz closed 3 years ago

kzkzzzz commented 3 years ago

bug描述: getLastQuery() 打印的sql特殊字符未转义

建表语句

CREATE TABLE `test_sql` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

model

class TestSql extends AbstractModel
{
    protected $tableName = 'test_sql';
}

测试代码

$model = new TestSql();
$data = [
    'name' => "Don' t worry",
];
$result = $model->data($data)->save();
print_r($model->lastQuery()->getLastQuery());

// 实际上orm已写入成功,但打印sql,Don' t worry单引号未转义,导致sql错误
// INSERT  INTO `test_sql` (`name`)  VALUES ('Don' t worry')
kiss291323003 commented 3 years ago

好的。感谢反馈

XueSiLf commented 3 years ago

已经在解决的路上了 https://github.com/easy-swoole/mysqli/pull/58

XueSiLf commented 3 years ago

该bug已解决,且已发布正式版本。https://github.com/easy-swoole/mysqli/releases/tag/2.2.9