处理撇号、php 和 pgsql
对于我的表单,在将它们插入数据库之前,我在每个字段上使用 pg_escape_string 。所以我得到像名字='O''reilly'这样的东西。但当我尝试打印出来时,我得到了 O''reily,两个撇号。难道不应该只有 1 个撇号吗,O'reilly?
这不是一个调试问题,我只是想知道你是否有firstname='O''reilly',你如何打印它,所以它只是O'reilly而不是O''reilly?
For my forms, I'm using pg_escape_string on every field before I insert them into the database. So I get something like firstname='O''reilly'. But when I try to print that out, I get O''reily, 2 apostrophes. Shouldn't it only 1 apostrophe, O'reilly?
This isnt a debugging problem, im just wondering if you have firstname='O''reilly', how do you print that so it is just O'reilly instead of O''reilly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
DB 库通常没有(或从不)具有 unescape 函数,因为实际上没有必要这样做。数据库将存储并返回未转义的数据。另外,由于您正在调用该函数,这意味着您已经拥有未转义形式的数据。
但是,您可以通过简单调用 str_replace 从字符串中删除双撇号:
DB libraries usually don't (or never) have an unescape function because there's no real need to do this. The DB will store and return the data unescaped. Plus, since you're calling the function, that means you already have the data in unescaped form.
However, you could remove double apostrophes from a string with a simple call to str_replace: