【问题标题】:SQL, PHP update querySQL、PHP更新查询
【发布时间】:2013-09-19 12:17:59
【问题描述】:

我想知道是否有任何方法可以检查更新查询是否已成功执行,否则我将执行插入查询。

$record = mysql_query("update table set a='$b', b='$c' where id = '$id' "); 
echo $record; // returns always 1;

谢谢。

【问题讨论】:

  • 您应该将 php 代码放在引号之外。试试这个$record = $mysql_query("update table set a='".$b."', b='".$c."' where id = '".$id".' ");
  • 哦,我试过了,但它不起作用!!但感谢您的帮助!
  • 使用准备好的语句可以解决您的问题。 通过使用外部变量构建 SQL 语句,您很容易受到 SQL 注入攻击。 此外,任何带有单引号的输入数据,例如“O'Malley”的名字,都会被炸毁您的 SQL 查询。请了解如何使用参数化查询(最好使用 PDO 模块)来保护您的 Web 应用程序。 bobby-tables.com/php 有示例可以帮助您入门,this question 有很多详细示例。

标签: php sql


【解决方案1】:

使用 mysql_affected_rows 函数查找受影响的记录数。请看下面的代码。

 $record = mysql_query("update table set a='$b', b='$c' where id = '$id' "); 
 $total_rows = mysql_affected_rows($conn);
 echo $total_rows;

$conn 是连接对象

【讨论】:

    【解决方案2】:

    会是这样的

    $records = mysql_query("UPDATE `table` SET a='$b', b='$c' WHERE id = '$id' "); 
    $affected_rows = mysql_affected_rows($records);
    if($affected_rows >= 1) {
        echo "Updated ".$affected_rows." rows";
    }
    

    需要在mysql_query 之前删除$。并考虑table 是您的表名,并确保您与数据库的连接活动

    并尽量避免使用 mysql_* 语句,因为整个 ext/mysql PHP 扩展提供了所有以前缀 mysql_* 命名的函数,从 PHP v5.5.0 开始正式弃用,并将在未来被删除。

    您可以更好地使用另外两个MySQL 扩展:MySQLiPDO_MySQL,可以使用其中任何一个来代替ext/mysql

    【讨论】:

    • 现在我不想使用 mysqli 和 pdo_mysql 我只需要 mysql 中的一些简单解决方案!感谢您的帮助!
    • 我只是建议....考虑一下我已经在mysql 仅@Pooja 中给出了解决方案
    【解决方案3】:

    试试这个...它返回上次查询运行中修改的行数。

    $Rows = mysql_affected_rows($record).
    

    示例 $Rows = 1、2、3 等......

    mysql_query(): how to check whether any rows are updated in case of UPDATE SQL

    【讨论】:

      【解决方案4】:

      mysql_affected_rows() 正是您所需要的。

      文档:http://php.net/manual/en/function.mysql-affected-rows.php

      mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
      if (mysql_affected_rows() > 0) {
          echo 'You updated '.mysql_affected_rows(). 'rows.';
      } else {
          echo 'Nothing updated';
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-21
        • 2015-05-20
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        相关资源
        最近更新 更多