我对php和mysql还是相当陌生,可以随意提出对我的代码的任何改进。
最近我完成了一个在本地XAMPP服务器上可以正常运行的项目,这就是为什么我决定将其上传到Web服务器以使其公开的原因。现在的问题是,我所有的INSERT查询都在Web服务器上时停止工作。他们似乎可以在本地主机上的脱机XAMPP上正常工作。尽管插入查询不起作用,但没有返回错误,因此我对此感到非常沮丧。
在此方面的任何帮助将不胜感激。下面是我用于插入查询的代码。
$firstname = $_POST['firstname'];
$job_role = $_POST['job_role'];
$password = $_POST['password'];
$username = $_POST['username'];
$conn = mysqli_connect("localhost", "root", "password", "id11597687_inventory");
mysqli_query($conn, "INSERT into users (`id`, `username`, `password`, `access_level`, `name` ) VALUES('', '$username', '$password', '$job_role', '$firstname')");
答案 0 :(得分:0)
从'id'
删除(...columns)
,从''
删除(...values)
。
应该看起来像
mysqli_query($conn, "INSERT into users (`username`, `password`, `access_level`, `name` )
VALUES('$username', '$password', '$job_role', '$firstname')");
自动递增使+1
变为已定义列的新值,在您的情况下为id
。
还要注意SQL injection
答案 1 :(得分:-1)
考虑到您正在使用从HTML表单发布的值,您想使用以下内容-
$var= mysqli_real_escape_string ($con,$_POST['var']);
假设“ id”字段是自动递增的值- 使用类似-
$sql = "INSERT INTO users (id, username,password, access_level,name) VALUES (NULL,'$_POST[username]','$_POST[password]','$_POST[access_level]','$_POST[name]')";
mysqli_query($conn,$sql)