2014-11-01 53 views
1

我使用下面的查询/件的代码更新,通过PHP更新MySQL数据库 -如何在PHP中返回,如果连续使用MySQL查询

$sql = "UPDATE test_table SET lastname='ram' where id=1"; 
$result = mysql_query($sql); 
echo $result; 

与此问题是,PHP的输出即使没有更新完成,也是1。例如对于例如 在我的情况下,没有包含id=1的行,所以当我在phpmyadmin中运行此查询时,它表示0 rows affected,而在PHP中使用相同的查询返回1

我的问题是 - 怎么知道,如果更新已完成,而无需使用新的选择查询以检查更改($result = 1)否($result = 0)?

+1

首先 - 迁移到更新的API。如果没有,请阅读手册并查找“mysql_affected_rows”或“mysql_info”。 – 2014-11-01 19:24:39

+0

@u_mulder对不起,先生,我甚至不是计算机专业的学生,​​我是一名想在空闲时间学习人体以外的东西的医生。这就是我问这个愚蠢问题的原因。 – 2014-11-01 19:29:38

+0

这与什么有关?作为一名医学博士,您应该更有能力进行自己的研究。他表示,你不应该再使用mysql_ API。 – 2014-11-01 19:33:08

回答

4

mysql_query返回true当更新成功时(即运行时没有错误,无论它有多少行或没有更新)。如果您想要实际更新的行数,则需要致电mysql_affected_rows

$sql = "UPDATE test_table SET lastname='ram' where id=1"; 
if (mysql_query($sql)) { 
    $result = mysql_affected_rows(); 
    echo $result; 
} 
+0

谢谢先生,作品完美。我会接受它作为答案,只要接受答案的时间限制允许我。 – 2014-11-01 19:31:31

+0

@Mureinik在你的回答中甚至没有提到你描述的API已经过时了一段时间了,因此对你感到遗憾。 – 2014-11-02 23:13:57

相关问题