[英]PHP/SQL never updates only inserts
由于某种原因,我的插入/更新检查仅进行过插入。 值userID确实有一个值,所以我不知道这是怎么回事。 有任何想法吗?
$result = mysql_query("SELECT * FROM users where userID = $userID ");
if (mysql_num_rows($result) > 0) {
mysql_query("UPDATE users SET firstName='$firstName', lastName='$lastName',
birthday='$birthday', update='$today', accessToken='$accessToken', emailOne='$emailOne' WHERE userID='$userId'");
} else {
mysql_query("INSERT INTO users (userID, firstName, lastName, birthday, updated, accessToken, emailOne )
VALUES ('$userId', '$firstName', '$lastName','$birthday', '$today', '$accessToken', '$emailOne')");
}
INSERT ... ON DUPLICATE KEY UPDATE
进行INSERT ... ON DUPLICATE KEY UPDATE
会更好。 您的版本取决于比赛条件。 在执行SELECT *
并尝试更新/插入查询之间,完全有可能ANOTHER脚本已经插入了相同的ID号,然后脚本中断。 这也减少了一个查询的数据库负载。
同样,除非您已通过mysql_real_escape_string()
在查询中传递了所有这些变量,否则您可能会从Little Bobby Tables获得访问。
从插入记录的方式来看,您的userId字段似乎是varchar
(或字母数字)字段。 因此,您的查询从不读取与其匹配的数据,因为它正在以数字形式搜索它。 您必须将第一行重写为:
$result = mysql_query("SELECT * FROM users where userID = '$userID' ");
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.