如何使用php错误检查mysql更新状态


how to error check mysql update statment using php?

我正在使用以下代码更新mysql行。有人能告诉我,如果更新查询成功且没有任何错误,我如何才能错误检查更新查询并仅打印Success吗?如果更新查询不成功,则打印失败

<?
    $IdVar = $_POST['rowId'];
    $DataVar = $_POST['NewData'];

    $server   = "localhost"; // MySQL hostname
    $username = "xxxxxx"; // MySQL username
    $password = "xxxxxx"; // MySQL password
    $dbname   = "test"; // MySQL db name
    $db = mysql_connect($server, $username, $password) or die(mysql_error());
          mysql_select_db($dbname) or die(mysql_error());

      $result = mysql_query("update testDb SET username ='$DataVar' WHERE ID = '$IdVar'");
     if (!$result) {
                 die('Invalid query: ' . mysql_error());
                }
    echo "Success";
    ?>

使用mysql_affected_rows计算受影响的行数。如果返回0,则没有更新任何行。

mysql_affected_rows统计成功时受影响的行数,如果上次查询失败,则为-1。

echo ( mysql_affected_rows() > 0 ) ? "Success update" : "No rows update";

mysql函数已弃用,因此您可能需要使用mysqli_函数

使用不推荐使用的mysql函数,可以使用mysql_errno来检查是否发生了错误。

$result = mysql_query("update testDb SET username ='$DataVar' WHERE ID = '$IdVar'");
if(mysql_errno($db)!=0) echo "Something went wrong";

我不会像其他答案所建议的那样检查mysql_affected_rows(),因为mysql_affected_rows()=0只意味着没有更新任何行,但并不意味着发生了错误。

例如,如果您的用户名="Rolf",id=3,那么如果您执行

$result = mysql_query("update testDb SET username ='Rolf' WHERE ID = '3'")

即使在更新过程中没有错误,也不会影响任何行。