2016-06-10 57 views
0

什麼像這樣的SQL語句的正確語法:加密與AES_ENCRYPT多個變量在MySQL

$insert = ("INSERT INTO users (email, password) VALUES (1,AES_ENCRYPT('$email',UNHEX('F3229A0B371ED2D9441B830D21A390C3'))),(1,AES_ENCRYPT('$password',UNHEX('F3229A0B371ED2D9441B830D21A390C3')));"); 

我想兩個變量添加到同一行DB的,他們都加密。 $email$password變量是來自Web表單的輸入,但您可能已經猜到了。我收到一條錯誤消息,說有一個意外的逗號必須是兩個值之間的逗號。

+0

此代碼是脆弱的SQL注入。你需要使用準備好的語句。 –

+0

瞭解使用預處理語句將多個變量插入到數據庫的教程,其中一些已加密,有些則不是? – tdrsam

回答

0

你錯了SQL,

試試這個:

INSERT INTO users (email, password) VALUES (
    AES_ENCRYPT('$email',UNHEX('F3229A0B371ED2D9441B830D21A390C3')), 
    AES_ENCRYPT('$password',UNHEX('F3229A0B371ED2D9441B830D21A390C3')) 
) 
+0

我收到此錯誤:錯誤: 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,在第1行的''附近使用正確的語法。這是命令:'$ insert =「INSERT INTO users(email,password)VALUES(AES_ENCRYPT('$ email', UNHEX( 'F3229A0B371ED2D9441B830D21A390C3')),(AES_ENCRYPT( '$密碼',UNHEX( 'F3229A0B371ED2D9441B830D21A390C3'))「; ' – tdrsam

+0

爲什麼要添加'('3 – weigreen

+0

你指的是一個正確的前'AES_ENCRYPT行? ('$ password')對嗎?我沒有意識到它是在那裏,我已經把它拿出來了,但仍然得到相同的錯誤信息關於雙引號 – tdrsam