pdo quote双引号的作用一样吗

比如在一个数据表中有一个字段叫order是专门用来做排序的,我的语句可能要这么写

但是因为order本身是一个关键字那么在执行的时候就会报syntax错误,我知道在pdo里对字段可以用:column_name來动态绑定它会自动处理引号等问题,也可以用$pdo->quote来转义字符串但是对字段名和表名却没有方法来转义。

这种转义在不同的数据库系统裏是一样的比如在mysql里

有没有一种通用而又省事的办法来处理这个问题呢

根据答案最后总结出一种通用的转义方法

}

如果使用此函数构建 SQL 语句强烈建议使用 配合参数构建,而不是用 PDO::quote() 把用户输入的数据拼接进 SQL 语句 使用 prepare 语句处理参数,不仅仅可移植性更好而且更方便、免疫 SQL 注入;相對于拼接 SQL 更快,客户端和服务器都能缓存编译后的 SQL 查询

不是所有的 PDO 驱动都实现了此功能(例如 PDO_ODBC)。 考虑使用 prepare 代替

字符集不仅仅要在数據库服务器上设置,也要为数据库连接设置(取决于驱动)它影响了 PDO::quote()。 更多信息可参考

为驱动提示数据类型,以便选择引号风格

返囙加引号的字符串,理论上可以安全用于 SQL 语句 如果驱动不支持这种方式,将返回 FALSE


        

        

        
}

我要回帖

更多关于 双引号的作用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信