Dom*_*ger 26
如果您知道如何执行SQL SELECT,那么执行以下操作:
$result = mysql_query("SELECT * FROM table1 WHERE something");
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
// do something
}
else {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
更好的是,不要在PHP中这样做,使用INSERT ... ON DUPLICATE KEY UPDATE.
您不需要在PHP中执行此操作,您可以直接在数据库的SQL查询中执行此操作(我假设您正在使用数据库进行记录,因为这就是您的问题所听到的内容,而我我会假设MySQL,因为它经常与PHP一起使用).
INSERT INTO ... ON DUPLICATE KEY UPDATE;
Run Code Online (Sandbox Code Playgroud)
如果它不存在则会插入一个新行,或者如果它已经存在则更新当前行,假设您的表具有主键.
有关详细信息,请参阅MySQL手册.
另一个选项是首先执行SELECT COUNT(1) FROM myTable WHERE ...查询,然后仅在结果为0时执行插入,否则执行更新.
我会推荐 Dominic Rodger 的解决方案,但稍作改动以使其更快。您应该选择一个值而不是多于一行。
$result = mysql_query("SELECT key FROM table1 WHERE something LIMIT 1");
$num_rows = mysql_num_rows($result);
如果($num_rows > 0){
// 做点什么
}
别的 {
// 做其他事情
}
如果您的记录已经存在,您将得到一个结果,即超过 0 个结果,因此它可以工作,但可能来自您的 SQL-Server 的流量较少。
计算符合您条件的记录数?
select count(*) from foo where id = 5
if($count > 0) {
// record exists
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48056 次 |
| 最近记录: |