How to determine if a MySQL update query succeeded when the data passed in the query is the same as what is already in the database?

前端 未结 4 1381
渐次进展
渐次进展 2021-02-20 11:16

Let\'s say you have a form with pre-populated data from your database, and you allow your users to make changes and save the form. If the user clicks the save button without mak

相关标签:
4条回答
  • 2021-02-20 11:55

    Variation 1:

    mysql_query() or die('error');
    

    Variation 2:

    $conn = mysql_query();
    if(!$conn) {//Error code here}
    

    Variation 3:

    try {
      $conn = mysql_query();
      if (!$conn) throw new Exception("mysql Error");
    } catch(Exception $e) {
      echo $e->getMessage();
    }
    
    0 讨论(0)
  • 2021-02-20 11:59

    if the update "fails" due to syntax error, or other mysql will return an error code on the actual mysql query and affected_rows will return with yet another error.

    Php for example:

    $qry = mysql_query("update blah where IamaSyntaxerror,33");
    if ($qry === FALSE) { echo "an error has occured"; }
    
    else  { mysql_affected_rows() == 0  means no updates occured
    
    0 讨论(0)
  • 2021-02-20 12:01

    Just check if no errors occurred after execution of query.
    If you use mysql, check mysql_error():
    if (!mysql_error()) print 'all is fine';
    Same for mysqli.

    0 讨论(0)
  • 2021-02-20 12:02

    [affected_rows()][1] is -1 if a query fails, not zero.

    [1]: http://www.php.net/manual/en/function.mysql-affected-rows.php

    It may return 0 if no changes were made to the row (same values), or if mysql didnt find a row to update. It will only return -1 due syntax erro

    0 讨论(0)
提交回复
热议问题