gpt4 book ai didi

php - pg_escape_string 和单引号 - 比 str_replace 更好的方法?

转载 作者:行者123 更新时间:2023-11-29 14:03:10 25 4
gpt4 key购买 nike

我正在通过 php 脚本将 html 表单数据输入到 postgre。我对从 POST 数据中获取的每个输入字符串进行以下处理:

  function sanitizeString($var, $con)
{
$var = strip_tags($var);
$var = htmlentities($var);
$var = stripslashes($var);
return pg_escape_string($con, $var);
}

每当我的输入中有一个单引号时,它就会被转换为两个单引号。我认为这可能是由于 sanitizeString() 函数中的 stripslashes() 引起的,但即使我注释掉那行 sanitizeString(函数来自动态网站上的 O'Reilly 书,不记得作者了,是的,我知道人们讨厌这个功能)。

我看到有些人建议使用 PDO 对象来避免这个单引号问题(Escaping single quote and save to database with quote),但我正在使用 pg_ 特定函数来执行参数化查询并且不想现在将所有内容都更改为 PDO。

我有 3 个相关问题,从最具体到最不具体:
(1) 每次访问可能包含单引号的字符串时,如何存储和显示仅包含单引号的字符串比仅执行 str_replace 更优雅?
(2) 还有其他我应该担心的错误字符吗?
(3) 什么是保存在数据库中然后完全按照输入的原样显示 html 表单输入的最佳方法?似乎没有 Elixir ,但如果有“最佳”方法,我无法通过谷歌找到它,我将不胜感激。

最佳答案

这对我有用

$var = " 'String' " ;
$new = pg_escape_string($var) ;

// outputs "String"

$new = str_replace("''", "", $new) ; // using two single quotes

// outputs String

关于php - pg_escape_string 和单引号 - 比 str_replace 更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28724274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com