0

このクエリを検証するにはどうすればよいですか? 現在、1行がコピーされていないという省略が発生しているため、チェックして修正するには防爆方法が必要です。クエリ:

$query = "
SELECT * 
FROM $UID
";

$result = mysql_query($query)or die(mysql_error());  

while ($row = mysql_fetch_assoc($result))  {

$q = $row['QID'];
$a = $row['answer'];
$c = $row['comment'];

$query = "
INSERT INTO a (UID, QID, answer, comment)
VALUES ('$UID', '$q', '$a', '$c')
";

mysql_query ($query)or die(mysql_error());
}

ありがとう。

4

1 に答える 1

1

これは、単一のクエリで実行できます。

INSERT INTO a (UID, QID, answer, comment) 
    SELECT '$UID', QID, answer, comment FROM `$UID`

アトミック操作であるため、すべてのデータが一度にコピーされます。ただし、mysql_info関数を使用して確認することはできます。次のような出力が得られます。

Records: 23 Duplicates: 0 Warnings: 0 

ここで Duplicate は、重複キーのために破棄された行の数です。Duplicatesとの両方Warningがあれば、0クエリは成功したと言えます。

于 2013-01-09T14:39:26.213 に答える