如何使用php检查mysql更新语句?

时间:2013-11-23 18:09:55

标签: php mysql

我正在使用以下代码更新mysql行。任何人都可以告诉我如何错误检查更新查询,如果更新查询成功没有任何错误,只打印成功?如果更新查询不成功,则打印失败

<?
    $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";

    ?>

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

不推荐使用mysql函数,因此您可能希望使用mysqli_ functions。

使用已弃用的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仅表示没有更新行,但这并不意味着发生了错误。

例如,如果您有用户名=&#34; Rolf&#34; id = 3,然后执行

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

即使在更新期间没有错误,也不会影响任何行。