MySQL/PDO :: quote(),在整数周围加上单引号

Dan*_*ugg 5 mysql pdo types querystringparameter

无论我传递给哪个值/数据类型对$pdo->quote($value, $type);,它似乎总是将其引用为字符串:

echo $pdo->quote('foo', PDO::PARAM_STR); /* 'foo', as expected */

echo $pdo->quote(42, PDO::PARAM_INT);    /* '42', expected 42 unquoted */
Run Code Online (Sandbox Code Playgroud)

我只是想知道这是否是预期的功能.我使用预准备语句来执行实际查询,但我正在尝试获取 创建最终查询字符串(用于调试/缓存),并且正在手动构建它们.

正如标题所示,这是$pdo使用MySQL驱动程序创建的时间.由于不可用,我没有尝试过其他人.

out*_*tis 6

甲骨文,SQLite的,MSSQL火鸟驱动所有的报价为PDO MySQL驱动程序,忽略了参数类型.在PostgreSQL驱动唯一区别二进制大对象和所有其他人.ODBC驱动程序不实现引用.您期望的(缺乏)行为被报告为错误并被关闭为"虚假",这意味着行为是设计的.当文件指出时,文件可能会产生误导:

PDO :: quote()在输入字符串周围放置引号(如果需要)

虽然这表明可能存在值不被引号包围的情况,但它并没有确实存在,也没有说明这些实例是什么.如果您认为这是文档中的错误,请提交错误报告,最好提供修复.