2009-12-27 75 views
1

我想創建一個表格來製作評論框。我被告知我應該警惕SQL注入(甚至不知道這意味着什麼)。創建表格查詢

所以我覺得我應該問問SO。我的要求是:

評論表

  1. 一個註釋行〜400個字符
  2. 援助 - >每一個意見,應掛的援助。應該允許重複。意味着援助= 21,可以有1個以上的評論。我應該可以通過數據庫搜索查看所有與aid = 21相關的評論。
  3. 評論的時間戳
  4. userid用於註釋。

一個MySQL查詢上表中,不應該允許SQL注入。我很困惑。任何幫助將不勝感激。非常感謝。

回答

3

創建一個表通常只發生一次,在安裝系統的時候。因此,沒有SQL injection(當用戶提供數據運行查詢時發生)的風險。

CREATE TABLE `comment` ( 
    `comment_id` INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `comment_text` VARCHAR(400) NOT NULL, 
    `aid_id` INTEGER NOT NULL REFERENCES `aid`(`aid_id`), 
    `comment_time` DATETIME NOT NULL, 
    `user_id` INTEGER NOT NULL REFERENCES `user`(`user_id`) 
); 
+0

它不打印時間戳。即當前時間。它的打印0000-0000 ....還有comment_text沒有更新。其爲空。 – amit 2009-12-27 20:19:59

+0

不使用SQL保留字作爲標識符(即表或列名稱)通常是良好的做法。雖然「註釋」一詞不在SQL標準中(請參閱http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt),但它是DB2的保留字(請參閱表2 http://publib.boulder.ibm.com/infocenter/db2e/v8r2/index.jsp?topic=/com.ibm.db2e.doc/db2eresword.html) – Glenn 2009-12-27 20:31:56

+0

表生成查詢的目的是創建一個表,不打印任何東西。您可能想要提出與查詢相關的問題以閱讀數據。 – 2009-12-29 16:05:52

1

嘗試和MySQL的使用stored procedures

使用參數的輸入傳遞到存儲過程。