php sql无法识别我的变量,也不会从数据库中删除

时间:2014-10-22 21:28:07

标签: php mysql variables drop-down-menu global-variables

我的php文件和sql语句出错了。我想删除我从下拉列表中选择的用户。我已经尝试了一切,并没有从数据库中删除。请帮帮我

main.php

<!DOCTYPE html>

<html>
<head>

</head>
<body>    
 <?php
   $link = mysql_connect("localhost","root","");
     mysql_select_db("pruebas", $link);

     /* El query valida si el usuario ingresado existe en la base de datos. Se utiliza la función 
     htmlentities para evitar inyecciones SQL. */
     $myusuario = mysql_query("select nombre from usuarios");
     $nmyusuario = mysql_num_rows($myusuario);


//Como ya se dijo anteriormente la variable $conexion esta definida 
//en el archivo 'conexion_mysqli.php'

?>

<form method="post" name="lista_form" action="delete.php">

<select name="lista">    
    <?php    
    while ( $row = mysql_fetch_array($myusuario) )    
    {
        ?>

        <option value=" <?php echo $row['nombre'] ?> " >
        <?php echo $row['nombre']; ?>
        </option>

        <?php
    }    
    ?>        
</select>
<input type="submit" value="SEND">
</form>


</body>

</html>

delete.php

<?php
     /* A continuación, realizamos la conexión con nuestra base de datos en MySQL */
     echo $_POST["lista"];
     $my_post=mysql_escape_string($_POST["lista"]);
     echo $my_post;
     $link = mysql_connect("localhost","root","");
     mysql_select_db("pruebas", $link);

     /* El query valida si el usuario ingresado existe en la base de datos. Se utiliza la función 
     htmlentities para evitar inyecciones SQL. */
 $sql=mysql_query("DELETE FROM usuarios WHERE nombre = '$my_post'", $link);

if($sql !=  0)
   {
    echo 'You DELETE';


   }
else
   {
    echo 'Your not in';
   }
          ?>

1 个答案:

答案 0 :(得分:0)

这似乎是你的问题:

<option value=" <?php echo $row['nombre'] ?> " >
               ^ here                       ^ and here

您正在为来自数据库的字符串添加空格。

除此之外,您没有转义字符串以输出到html,因此如果值包含"字符,也可能会破坏您的html和逻辑。

您应该将其更改为:

<option value="<?php echo htmlspecialchars($row['nombre']); ?>" >

另请注意,mysql_escape_string已弃用,因为php 4.3(!)和所有其他mysql_*函数现已弃用。