使用mySql将用户添加到php中的简单数据库时出错

时间:2017-10-30 20:58:24

标签: php mysql

我对mySql的php很新,所以如果这很明显,请提前抱歉。 当我尝试使用此代码添加新用户时,我总是收到我的错误消息,而不是成功的消息。 谁能看到我出错的地方?

编辑:"添加echo mysqli_error($ link)"给了我这个错误; " Field' name'没有默认值"

我的数据库中有4列,名称是最后一列,我可以通过这种方式添加用户,而无需指定名称'

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>
      Form
    </title>
  </head>
  <body>
    <form method="post">
      email<br>
      <input type="text" name="email" id="email" value=""><br>
      password<br>
      <input type="password" name="password" id="email" value=""><br>
      <input type="submit" value="Sign Up">
    </form>
  </body>
</html>

HTML表单:

from tkinter import * 
root = Tk()
photo = PhotoImage(file=r"C:\Temp\test\computer.gif")
Label(root, image=photo, height="10", width="20").pack()
root.mainloop()

1 个答案:

答案 0 :(得分:1)

您正在尝试插入新用户,但您只提供emailpassword。表users中的所有其他列将采用数据库上设置的默认值(由创建它的人),或者因为没有默认值而给出错误。所以你可以:

  • 为运行查询的数据库中的name列设置默认值:

    ALTER TABLE `users` ALTER COLUMN `name` SET DEFAULT 'No Name';
    
  • 像这样更改您的代码:

    $query = "INSERT INTO `users` (`email`, `password`, `name`) VALUES (
      '".mysqli_real_escape_string($link, $_POST['email'])."',
      '".mysqli_real_escape_string($link, $_POST['password'])."',
      'No Name' //Or even ask for their name and put it here
    )";