0

特定のuser_IDの行である場合はフォームを更新しますが、そうでない場合は挿入します。重複キーの更新で挿入...を試しましたが、惨めに失敗したので、これが次の試みです。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

「INSERT INTO...」の代わりに「REPLACE INTO...」を試しましたか?

于 2012-04-27T19:14:49.303 に答える
0

REPLACEあなたが望むものです。UNIQUE KEYonを定義する必要がありますid(一意の be 定義でない場合PRIMARY KEY)。

于 2012-04-27T19:14:49.933 に答える
0

REPLACE INTO が答えです。それでもコードを使用したい場合は、クエリにセミコロンがありません:

$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 に答える