php - 用于删除数据库中选定行的表单 : displays confirmation always

标签 php mysql sql database sql-delete

我有一个表单可以从我的 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 );

}

?>

这显然只是内部代码,为了简单起见,我没有清理/验证任何内容。然而,适当的卫生和验证是必须的You can learn more about mysqli here

关于php - 用于删除数据库中选定行的表单 : displays confirmation always,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989122/

相关文章:

php - Laravel ORM 数组到字符串的转换

php - 我在第 32 行、第 34 行、第 36 行、第 38 行有错误 :Notice: Undefined offset: 1 in C:\wamp\www\index. php

mysql - 为每个与主键匹配的外键选择最后一条记录

php - 我如何在 MySQLi php 中使用 Join

mysql - 将连接语句的结果插入 MySQL 表中

mysql - 按不同记录上的最大值排序,不使用子查询 (mysql)

php - 如何从MySQL中的单个表中选择依赖列

php - 查询 ci 的 mySQL 表中有 JSON 列的位置

php - cakephp上传插件-定义保存文件的目录

php - 我想要 count 的值并想在其他查询中使用它。这怎么可能?