Php 在数据库中安全使用POST变量

Php 在数据库中安全使用POST变量,php,mysql,Php,Mysql,亲爱的社区我已经有一段时间没有编写数据库应用程序了,只是想确定我有一个简单的问题: 下面的PHP代码可以安全使用吗?我用PHP5.3.8安装了一个基本的DA,所以应该禁用magic quotes 您好 <?php $id = ( mysql_real_escape_string( stripslashes ($_POST['id']))); $naam = ( mysql_real_escape_string( stripslashes ($_POST['naam']

亲爱的社区我已经有一段时间没有编写数据库应用程序了,只是想确定我有一个简单的问题:

下面的PHP代码可以安全使用吗?我用PHP5.3.8安装了一个基本的DA,所以应该禁用magic quotes

您好

 <?php
    $id =  ( mysql_real_escape_string( stripslashes ($_POST['id'])));
    $naam = ( mysql_real_escape_string( stripslashes  ($_POST['naam'])));
    $bericht =  ( mysql_real_escape_string ( stripslashes ($_POST['bericht'])));

    if ($id and $naam and $bericht) {

    $databsestring = "<div class=\"reactie\"><h3>".$naam." op ".date ("F j, Y").":</h3>" . $bericht . "</div>";

    if ($db_found) {

    $SQL = "UPDATE xxxxx_comments SET comments = CONCAT (comments,'".$databsestring."') WHERE id='".$id."'";
    $result = mysql_query($SQL);


    mysql_close($db_handle);

    }
    ?>

mysql\u*已弃用,请使用mysqli或PDO安全存储数据

例如:

    $add_user = $mysqli->prepare("INSERT INTO `users` SET  `name`=?, `email`=?, `encrypted_password`=?");
    $add_user->bind_param("sss",$name,$email,$hash["encrypted"]);
    $add_user->execute()

使用预先准备好的语句是避免sql注入的一种安全方法

这只是我的观点,但我建议使用php框架,这样你就不必担心这类问题=)使用
mysql\u query
是“不鼓励的”。您应该开始使用其他PHP扩展,如PDO或MySQLi。它们允许您准备查询,使得sql注入实际上是不可能的。除此之外,您似乎对RDB的“关系”部分有着相当奇怪的理解,通过将它们连接到单个字段来添加“注释”是相当奇怪的。。。您将如何删除其中的一个?您正在转义,因此应该可以。但是如果没有启用magic_quotes,stripslashes将损坏字符串。任何合法的反斜杠都将被删除。我向客户解释过,但这是他们想要的。。。。不需要斜杠吗??谢谢你所有的朋友!mysql_real_escape_字符串绝对是PDO。你可以避免在事先准备好的声明中出现难看的问号。情人眼里出西施:)Mysql_uu没有被弃用,他们要花很长时间才能让它被弃用。哇,没必要否决他。不鼓励使用mysql,并将在将来的版本中删除。为什么要编写会破坏或更糟地破坏数据库的代码?升级投票以补偿a$$hat。+1建议使用mysqli或pdo。