繁体   English   中英

PHP / SQL从不更新仅插入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM