gpt4 book ai didi

php - 在 mysql 中使用 mysql_real_escape_string 或 addslashes 时字符串不会转义

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:21 26 4
gpt4 key购买 nike

我使用 mysql_real_escape_string php 函数来转义从表单收到的数据。我接收表单数据的代码是:

$std_id     =   mysql_real_escape_string($_POST['std_id']);
$name = mysql_real_escape_string($_POST['name']);
$family = mysql_real_escape_string($_POST['family']);

例如,如果在名称表单字段中输入 O'reilly 字符串,这个函数工作正常,我的查询也完成了。但是当我转到 mysql 和我的表时,看到这个字符串被插入O'reilly 而不是 O\'reilly。我的查询是:

$sql    =   "insert into student set 
std_id = $std_id,
name = '$name',
family = '$family',
";

当使用 addslashes() 函数时也会发生这种情况。

最佳答案

正是应该发生的事情。您想将字符串 O'reilly 插入数据库,而不是 O\'reilly,对吧?

斜杠只是告诉 MySQL 下一个 ' 应该是一个字面撇号,而不是表示字符串结尾的撇号/单引号。


PS:您可能需要考虑使用 PDO and prepared statements ,它提供了更简洁的语法。

关于php - 在 mysql 中使用 mysql_real_escape_string 或 addslashes 时字符串不会转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8306904/

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