swoole_mysql->escape

转义SQL语句中的特殊字符,避免SQL注入攻击。底层基于mysqlnd提供的函数实现,需要依赖PHP的mysqlnd扩展。

  • 编译时需要增加--enable-mysqlnd来启用,如果你的PHP中没有mysqlnd将会出现编译错误
  • 必须在connect完成后才能使用
  • 客户端未设置字符集时默认使用Server返回的字符集设置,可在connect方法中加入charset修改连接字符集

此方法在1.9.6或更高版本可用

function swoole_mysql->escape(string $str) : string

使用实例

$db = new swoole_mysql;
$server = array(
    'host' => '127.0.0.1',
    'user' => 'root',
    'password' => 'root',
    'database' => 'test',
);
$db->connect($server, function ($db, $result) {
    $data = $db->escape("abc'efg\r\n");
});


  • 今夜的风儿好喧嚣啊

    echo SWOOLE_VERSION;  // 2.0.9
    $db = new swoole_mysql();
    var_dump(method_exists($db, 'escape'));  //  bool(false)
    

    请问有大佬知道swoole版本2.0.9的swoole_mysql中为什么不存在escape这个方法吗? 难道是我姿势不对?

  • 阿呆

    我的swoole也是2.0.10,也没有这个escape这个方法了

  • 谁伴我闯荡

    文档说这么清楚你们还问。。。人家都说了”底层基于mysqlnd提供的函数实现,需要依赖PHP的mysqlnd扩展。“

  • invalley

    没有这个escape这个方法是因为编译的时候没有加上--enable-mysqlnd参数,默认是没开始的。文档编译参数写的很清楚的。