Php MySQL\u real\u escape\u字符串不添加斜杠?
所以我这样做:Php MySQL\u real\u escape\u字符串不添加斜杠?,php,mysql,string,escaping,Php,Mysql,String,Escaping,所以我这样做: <?php session_start(); include("../loginconnect.php"); mysql_real_escape_string($_POST[int]); $int = nl2br($_POST[int]); $query = "UPDATE `DB`.`TABLE` SET `interests`='$int' WHERE `user`='$_SESSION[user]'"; mysql_que
<?php
session_start();
include("../loginconnect.php");
mysql_real_escape_string($_POST[int]);
$int = nl2br($_POST[int]);
$query = "UPDATE `DB`.`TABLE` SET `interests`='$int' WHERE `user`='$_SESSION[user]'";
mysql_query($query) or die(mysql_error());
mysql_close($con);
?>
m_r_e_s()返回转义值,它不修改原始值
$int = mysql_real_escape_string($_POST['int']);
$query = "UPDATE ... interests = '$int' ...";
请注意,我在POST值中的int
周围添加了引号。如果没有引号,PHP将其视为一个常量值(例如define()。如果它找不到该名称的常量,它会礼貌地假定您打算将其用作字符串并进行相应调整,但会发出警告。如果你做了
define('int', 'some totally wonky value');
以前,您访问的POST值可能是错误的,因为PHP会将其视为$\u POST[一些完全不可靠的值]
。m\u r\u e\u s()返回转义值,它不会修改原始值
$int = mysql_real_escape_string($_POST['int']);
$query = "UPDATE ... interests = '$int' ...";
请注意,我在POST值中的int
周围添加了引号。如果没有引号,PHP将其视为一个常量值(例如define()。如果它找不到该名称的常量,它会礼貌地假定您打算将其用作字符串并进行相应调整,但会发出警告。如果你做了
define('int', 'some totally wonky value');
以前,您访问的POST值可能是错误的,因为PHP会将其视为$\u POST[一些完全不可靠的值]
。您在查询中没有使用mysql\u real\u escape\u字符串的结果。
尝试这样做:
$int = nl2br(mysql_real_escape_string($_POST[int]););
您没有在查询中使用mysql\u real\u escape\u字符串的结果。
尝试这样做:
$int = nl2br(mysql_real_escape_string($_POST[int]););
- 你应该使用事先准备好的语句。与mysql_*函数相比,它有一个轻微的学习曲线,但从长远来看是值得的
- 您应该引用字符串,比如$\u POST['int'],而不是$\u POST[int]
- 在文件顶部放置错误报告(-1)李>
- 你应该使用事先准备好的语句。与mysql_*函数相比,它有一个轻微的学习曲线,但从长远来看是值得的
- 您应该引用字符串,比如$\u POST['int'],而不是$\u POST[int]
- 在文件顶部放置错误报告(-1)李>
我也尝试过使用带引号的$\u POST['int'],但也失败了。我也尝试过使用带引号的$\u POST['int'],但也失败了。但在数据库中,数据仍然没有被替换。为什么?因为转义是作为进入数据库的一部分被删除的。在构建SQL语句时,转义仅对实际查询部分有用。在那之后,MySQL确切地知道东西在哪里,“顽皮”的值是不可能泄露出去的。在一种模糊的方式中,逃跑就像囚犯在设施之间转移时被铐上的手铐。一旦犯人进了新监狱,手铐就被移除了。所以数据仍然是安全的,即使我看不到斜线?@Marc,我已经自由地在论点周围添加了引号,我想你已经忘记了。但是在数据库中,数据仍然没有被替换。为什么?因为转义是作为进入数据库的一部分被删除的。在构建SQL语句时,转义仅对实际查询部分有用。在那之后,MySQL确切地知道东西在哪里,“顽皮”的值是不可能泄露出去的。在一种模糊的方式中,逃跑就像囚犯在设施之间转移时被铐上的手铐。一旦犯人进了新监狱,手铐就会被移除。所以数据仍然是安全的,即使我看不到斜线?@Marc,我已经自由地在论点周围添加了引号,我想你已经忘记了。