2013-05-17 88 views
1

我有2個表格文章和用戶。插入選擇查詢

我要插入標題,內容和名稱到項目表。

我存儲在會話中的用戶ID,是否有使用插入SELECT查詢標題,內容和名稱添加到項目表,同時使用id從用戶表中獲取名稱的方式。

喜歡的東西:

INSERT INTO article (title, content, name) VALUES ($post['title'], $post['content'], name) SELECT name FROM users WHERE id = mySessionId 
+0

你的模式是錯誤的:你應存儲ID和使用'JOIN'獲得的名稱。這是基本的正常化(http://sqlmag.com/database-performance-tuning/sql-design-why-you-need-database-normalization),否則將面臨更新異常 – dtech

+0

他們將在你的數據庫中之前,請逃避這些值爲人類着想 – naththedeveloper

回答

3

使用INSERT INTO..SELECT聲明,

$title = $post['title']; 
$content = $post['content']; 
$insertStatement = "INSERT INTO article (title, content, name) 
        SELECT '$title', '$content', name 
        FROM users 
        WHERE id = mySessionId"; 

一點題外話,查詢很容易受到與SQL Injection如果變量的值(小號)從外面走了進來。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements你可以擺脫使用單引號圍繞值。