0

如果它们是特定 user_ID 的行,我希望表单更新,但如果不是则插入。我曾尝试使用 insert... 进行重复键更新,但失败得很惨,所以这是我的下一次尝试。user_ID 不是唯一索引,但我的表中的“ID”是并且是一个自动增量字段。User_ID 只是会话所基于的索引。这是我现在一直在使用的代码:

if (empty($err)) {

        $thesis_Name = mysql_real_escape_string($_POST['thesis_Name']);
        $abstract = mysql_real_escape_string($_POST['abstract']);


$query="UPDATE thesis SET (`thesis_Name`='$thesis_Name',
`abstract`='$abstract') WHERE id='$_SESSION[user_id]'
IF ROW_COUNT()=0
REPLACE INTO  thesis (theis_Name,abstract)VALUES ('$thesis_Name', '$abstract')
";

mysql_query($query) or die();
// query is ok?

if (mysql_query($the_query, $link) ){

 // redirect to user profile
   header('Location: myaccount.php?id=' . $user_id);
   }

在按下提交的那一刻,我得到一个空白页。

4

3 回答 3

2

您是否尝试过“REPLACE INTO ...”而不是“INSERT INTO ...”

于 2012-04-27T19:14:49.303 回答
0

REPLACE是你想要的。您将需要定义一个UNIQUE KEYon id(如果它不是一个PRIMARY KEY唯一的定义)。

于 2012-04-27T19:14:49.933 回答
0

替换为答案。如果您仍希望使用您的代码,则您的查询中缺少分号:

$query="UPDATE thesis SET (`thesis_Name`='$thesis_Name',
`abstract`='$abstract') WHERE id='$_SESSION[user_id]';
IF ROW_COUNT()=0
INSERT INTO  thesis (theis_Name,abstract)VALUES ($thesis_Name, $abstract)
";
于 2012-04-27T19:17:17.077 回答