我正在尝试编写一个函数来检查表中是否存在用户,如果存在,则更新该行,如果不存在,则插入它。
这是我的功能:
function UserExists($screenname){
$mysql = mysql_fetch_array ( mysql_query("SELECT * FROM `users` WHERE `screenname` = '$screenname' "));
if($mysql){
return TRUE;
}else{
return FALSE;
}
}
我使用以下命令执行此函数:
if(UserExists($user)){
mysql_query("UPDATE `users` SET `token` = '$token' , `secret` = '$secret' WHERE `screenname` = '$user' ");
}else{
mysql_query("INSERT INTO `users` (`screenname`, `token`, `secret`) VALUES ('$user', '$token', '$secret')");
}
它没有做任何事情,没有抛出任何错误,但也没有更新表。
最佳答案
您想看一下INSERT ... ON DUPLICATE KEY UPDATE ...
MySQL query syntax只需一个查询即可完成此操作。
INSERT INTO users (screenname, token, secret) VALUES ('screenname', 'token', 'secret')
ON DUPLICATE KEY UPDATE token = 'token', secret = 'secret'
screenname
应该是唯一的(或主键),但您目前可能没有。我建议在数据库表中添加一个 ID 列,并使用它来引用数据库行。
关于php - 一个 PHP 函数,用于在 true/false 上插入或更新 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1649575/