我遇到以下代码的问题:
if(mysql_num_rows(mysql_query("SELECT user_id FROM myTable WHERE user_id = '$user_id'"))){
mysql_query("UPDATE myTable SET
id='',
user_id='$user_id',
title='$title',
WHERE user_id='$user_id'
")
} else {
mysql_query("INSERT INTO myTable (id, user_id, title)
VALUES ('', $user_id, $title) ");
}
更新部分似乎可以工作,但在else之后它不会将记录插入表中。
有人能发现可能出现的问题吗?
答案 0 :(得分:2)
毫不奇怪,因为这段代码太可怕了。四个嵌套的运算符!我遇到以下代码
的问题
没有报告任何错误
你没有要求任何
使您的代码更加一致并向其添加错误报告:
$sql = "SELECT user_id FROM myTable WHERE user_id = '$user_id'";
$res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
if (mysql_num_rows($res)) {
$sql = "UPDATE myTable SET id='',user_id='$user_id',title='$title', WHERE user_id='$user_id'";
mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
} else {
$sql = "INSERT INTO myTable (id, user_id, title) VALUES ('', $user_id, $title)";
mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
}
,您将始终被告知发生的任何错误
答案 1 :(得分:1)
确保在VALUES ()
部分中引用您的值:
mysql_query("INSERT INTO myTable (id, user_id, title)
VALUES ('', '$user_id', '$title') ");
答案 2 :(得分:1)
如果您的ID字段是自动递增整数?如果是这样,那么尝试将其设置为值''将失败。只需将ID从插入查询中删除,它就可以正常工作
答案 3 :(得分:0)
请查看INSERT ... ON DUPLICATE KEY UPDATE,http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html