PHP str_替换引号和双引号

PHP str_替换引号和双引号,php,str-replace,Php,Str Replace,我有一个文本区域,用户可以键入单引号和双引号,但在我将此数据插入数据库之前,我想用\'和双引号\'替换引号。我尝试执行以下操作: $_POST = str_replace("'", "\'", $_POST); $_POST = str_replace(""", "\"", $_POST); 当我运行这个时,我只会看到一个空白屏幕没有错误,我做错了吗?你真的不应该这么做。你应该使用PDO和准备好的语句,或者至少是mysqli和mysqli\u real\u escape\u string。使用

我有一个文本区域,用户可以键入单引号和双引号,但在我将此数据插入数据库之前,我想用\'和双引号\'替换引号。我尝试执行以下操作:

$_POST = str_replace("'", "\'", $_POST);
$_POST = str_replace(""", "\"", $_POST);

当我运行这个时,我只会看到一个空白屏幕没有错误,我做错了吗?

你真的不应该这么做。你应该使用
PDO和准备好的语句
,或者至少是
mysqli和mysqli\u real\u escape\u string
。使用
addslashes
将数据插入数据库,这是一个非常糟糕的主意

编辑


您不应该使用
mysql
函数(我看到您在您的问题注释中尝试过),因为它们已经被弃用了。如果您不想使用PDO

$\u POST
是一个数组,您不能为此使用字符串替换函数,请使用
mysqli
函数。
您必须直接在字段本身上执行此操作,例如在
$\u POST['name']

只需使用mysql\u real\u escape\u字符串,并尝试对超级全局变量执行字符串操作……这不是一个好主意(如果您不知道这些变量是数组)

为什么不使用:

mysqli_real_escape_string

这是为了避免SQL注入吗?如果是这种情况,您应该阅读:即使stackoverflow highlight也会检测到错误。我尝试使用mysql\u real\u escape\u字符串,但它只是在
中插入空数据this
“,”\”
(“,“\”,$\u POST)
只会将其替换为相同的内容
用于
,因此您可以执行
(“,”,$POST)
,然后将
(“,”,$POST)
替换为
“\”,“,$POST)
,这将替换
免费。这是对您发布的代码的回答,除了下面给出的答案外,如果您仍然热衷于使用您正在使用的代码。mysqli\u real\u escape\u string也不起作用,它只是插入空数据:(@user3723240您需要首先创建mysqli连接,并在使用此功能时传递正确的参数我正在通过mysqli_connect进行连接我如何在此处添加prepare语句
$sql=“INSERT INTO
awards`(title,description,image)值('..mysqli_real_escape_string($title)。”,“$description.”,“$image.”);如果(!mysqli_query($connection,$sql)){die('Error:'.mysqli_Error($connection));}其他{echo'奖励已插入
'}`@user3723240,您应该在mysqli或(在PDO情况下)中查看