我的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';
}
?>
答案 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_*
函数现已弃用。