【问题标题】:How to judge whether the SQL update statement to delete success [duplicate]如何判断SQL更新语句是否删除成功[重复]
【发布时间】:2014-11-06 08:49:35
【问题描述】:

我使用代码更新mysql中的数据。但它总是回显“成功”,无论$id等于任何整数。

$id=isset($_GET['id'])?$_GET['id']+0:0;
$sql="update user set age=50 where id=".$id;
$result=mysql_query($sql,$con);
if($result)
    echo "update sucess<br />";
else
    echo "update failed";

【问题讨论】:

标签: php mysql


【解决方案1】:

您应该改用mysql_affected_rows()

这样你就会知道它做了你想要的改变。

必填事项:

Please, don't use mysql_* functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDOMySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial

这是使用 mysqli 时的样子:

if(isset($_GET['id'])) {
    $con = new mysqli('localhost', 'username', 'password', 'database_name');
    $id = $_GET['id'];
    $sql = 'UPDATE user SET age = 50 WHERE id = ?';
    $update = $con->prepare($sql);
    $update->bind_param('i', $id);
    $update->execute();

    if($update->affected_rows > 0) {
        echo 'updated';
    } else {
        echo 'nothing';
    }
}

【讨论】:

  • 漂亮的布局 ;) - 我喜欢 “这是使用 mysqli 时的样子:” - 现在如果 Stack 有类似 SQLfiddle 的东西就好了。
  • @Fred-ii- 是的,我希望他们在堆栈 sn-p 中也包含 php 和 sql 功能:D
  • @Fred-ii- 实际上,弃用模板来自 Second Rikudo 的回答。也给它加了书签:D stackoverflow.com/a/12860140/3859027
  • 我的意思是“一般”布局,它的外观。我认为这是我的图形方面的谈话大声笑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 2011-05-19
相关资源
最近更新 更多