0

私は3つのテーブルを持っています:

user (id,name,password,......)

words (id,word,meaning)

userword (id, user_id,word_id,checking,old)

そして私はphpでクエリを持っています:

$user= $_SESSION['userid'];
$result = mysql_query("SELECT *
                    FROM words
                    WHERE id
                    IN (
                            SELECT word_id
                            FROM userword
                            WHERE old =0
                            AND user_id =$user
                            LIMIT 10
                      ) 
                    ");

このクエリは正常に機能しますが、この後、選択した単語を更新して old=1 に設定したいのですが、どうすればよいですか?

4

1 に答える 1

2

廃止されたため、 mysql_* 関数の使用はお勧めしません。

mysql_query("UPDATE userword SET old='1' WHERE old='0' AND user_id='$user' AND word_id IN(SELECT id FROM words) LIMIT 10");

PDO アプローチは次のようになります。

$sql=$dbh->prepare("UPDATE userword SET old='1' WHERE old='0' AND user_id=? AND word_id IN(SELECT id FROM words) LIMIT 10");
$sql->execute(array($user));

PDOの詳細: www.php.net/manual/en/book.pdo.php

于 2013-10-22T15:03:15.340 に答える