php mysql update if else总是返回true

时间:2012-08-25 22:25:55

标签: php

我已经尝试了每一个我能找到的例子,但是没有成功。看起来很简单,如果$number不是跟踪行中的值,我想要的只是一个错误。

<?php
mysql_connect("localhost", "user", "pass") or die("Connection Failed");
mysql_select_db("mydb") or die("Connection Failed");
$number = $_POST['number'];
$date = $_POST['datechange'];
$removed = $_POST['remover'];
$query = "UPDATE Custody SET DateOut = '$date' ,RemovedBy = '$removed' WHERE Tracking= '$number'";  
if (mysql_query($query)) {
    echo "updated";
} else {
    echo "fail";
}
?>

2 个答案:

答案 0 :(得分:1)

您正在寻找mysql_affected_rows()。您可以在更新后进行检查,并轻松检测到错误。

关于实际代码,你应该注意“建议的替代方案”部分,mysqliPDO是目前更安全的PHP数据库访问选项。问题中的代码具有明确的SQL injection problems

答案 1 :(得分:1)

如果您想知道是否修改了行使用mysql_affected_rows,那就是说mysql_ *函数是旧的且未维护的,您应该使用msqliPDO代替预备语句因为您将未经过处理的数据放入查询