提问者:小点点

我在向数据库插入数据时出错


这是MySQL代码,密码位置的$符号出现了一些错误。 该密码由Sha-MD5(PHP)自动生成。 插入用户集full-name=John Doe,email=email@gmail.com,phone=12345678901,username=mirror43,password=$2Y$10$Oends4HBQHNAJGDHOLQHOKXC1RXB.gi/BGWLGUOTXIAC9LR.fx0i,address=我的街道地址,address2=FGFFGFFF,country=Nigeria,age=2020-06-04,fb_link=email@gmail.com,ref=email@gmail.com,


共1个答案

匿名用户

这是无效得SQL。 您必须将字符串(文本)括在引号中('John Doe'),inserts如下所示:

insert into
  table
(
  column1,
  column2
)
values
(
  value_of_column_1,
  value_of_column_2
)

我不知道您的PHP代码,但我认为您应该使用准备好的语句(docs for PDO,mysqli)。

我不是MySQL的用户(我使用PostgreSQL),但user可能是MySQL中的保留名称。 您必须将其括在反勾中(`)。 您甚至可以在所有表和列名上使用这种语法。

经过这些修改后,您的SQL应该如下所示:

INSERT INTO
  `user`
(
  `full-name`,
  `email`,
  `phone`,
  `username`,
  `password`,
  `address`,
  `address2`,
  `country`,
  `age`,
  `fb_link`,
  `ref`,
  `image`
)
values
(
  'John Doe',
  'email@gmail.com',
  12345678901, -- Use quotes if type of this column is text
  'Mirror43',     
  '$2y$10$OeNDS4hBqhNajGDhoLqqhOkXc1RXb.gI/bGWlgUOtxiac9lr.Fx0i',
  'my street address',
  'fgffgfff',
  'Nigeria',
  '2020-06-04',
  'email@gmail.com',
  'email@gmail.com',
  '1591624014_balaji-malliswamy-uU9ZPjNp0TY-unsplash.jpg' 
)