2013-01-09 116 views
0

我將如何去驗證此查詢?目前,我得到一些遺漏,其中一行沒有複製,所以我需要一個防爆方法來檢查和糾正。查詢:將數據從表格複製到表格:驗證mysql查詢

$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()); 
} 

謝謝。

+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

+0

你能解釋一下你的問題嗎?我真的不看這個代碼中的用戶輸入,因此它不清楚驗證什麼? –

+0

請詳細說明您的問題。驗證是什麼意思? –

回答

1

您可以在單個查詢中執行此操作。

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

作爲其一個原子操作所有數據都將在一杆被複制。但是,您仍然可以使用mysql_info函數進行驗證。它會給出如下的輸出。

Records: 23 Duplicates: 0 Warnings: 0 

此處Duplicate是由於重複鍵而丟棄的行數。如果DuplicatesWarning都是0,則可以說查詢成功。

+0

這簡單得多! - 如何確認數據已正確複製? –

+0

從一張桌子到另一張桌子? –

+0

@MikeThrussell查看更新 –

相關問題