2016-06-10 58 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