繁体   English   中英

用于删除数据库中所选行的表单:始终显示确认

[英]Form to delete selected row in database: displays confirmation always

我有一个表单从我的SQL数据库中删除一行。 我昨天运行了它但由于某种原因它不会成功删除任何东西,只需返回确认消息。 我知道我的所有登录/连接细节都是正确的。 请告诉我这个脚本是否有错误。

PHP

if(isset($_POST['delete']))
{
$dbhost = '';
$dbuser = '';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$address = $_POST['address'];

$sql = "DELETE FROM units WHERE address = '$address'";

mysql_select_db('db_units');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not delete data: ' . mysql_error());
}
echo "Deleted data successfully\n";
mysql_close($conn);
}
else
{

形成

<form method="post" action="<?php $_PHP_SELF ?>">

<td><input name="address" type="text" address="address"></td>

<input name="delete" type="submit" address="delete" value="Delete">

PHP前缀mysql_中的所有函数都已弃用。 建议使用前缀为mysqli_或OOP版本的函数。 这是我确信可以使用的代码,我现在没有测试权限,因为我在手机上。 我个人使用面向对象的mysqli版本,但这主要取决于你。

<?php

$link = new mysqli( $host, $user, $password, $database );

if ( isset( $_POST['delete'] ) ) {

    $address = $_POST['address'];

    $sql = "DELETE FROM `units` WHERE `address` = '{$address}'";

    if ( ! $retval = $link->query( $sql ) )
        die( "Could not delete data: " . $link->error );

}

?>

这显然只是内部代码,为简单起见,我没有清理/验证任何内容。 但是, 必须进行适当的卫生和验证 你可以在这里了解更多关于mysqli的信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM