我无法将数据插入MySQL数据库。我不知道原因,因为没有错误被触发。我在Windows上使用XAMPP运行本地服务器。这是代码。如果有人可以帮助,那就太好了。
我总是收到“未插入值”输出。当我获得通过SQL查询的VALUES('$ email',...)部分中的表单输入的确切值时,我也尝试打印$ query。
<?php
$dbconnect = mysqli_connect("localhost","root","","id3626001_login_details");
if (!$dbconnect)
{
die("Connection Failed" .mysqli_connect_error());
}
if (!mysqli_select_db($dbconnect, "id3626001_login_details"))
{
echo "Could not connect to Database";
}
if (isset($_REQUEST['username']) && ($_SERVER["REQUEST_METHOD"] == "POST")){
$username = $_REQUEST['username'];
$email = $_REQUEST['email'];
$password = $_REQUEST['password'];
// Inserting values into the database through a query
$query = "INSERT INTO user_registration (ID, email, username, password) VALUES ('$email', $username', '".md5($password)."')";
if (!mysqli_query($dbconnect, $query))
{
echo "Values not inserted";
}
$result = mysqli_query($dbconnect, $query);
if($result){
echo "Registration Successful";
}
}
?>
最佳答案
您的查询有问题,
1)您传递的列数和值必须相同
2)您忘了放'
(在$username'
前加引号
将您的查询更改为
// Inserting values into the database through a query
$query = "INSERT INTO user_registration ( email, username, password) VALUES ('$email', '$username', '".md5($password)."')";
测试时,不仅应仅打印查询,还应复制该查询并通过[[localhost / phpmyadmin)>选择数据库> SQL直接将其运行到数据库中,并查看触发查询时在那里显示了什么错误。
更新
对于@Akintunde的建议
出于安全方面的考虑,您不应该使用对
SQL injections
完全开放的这类插入方法,必须遵循一些规则,以避免使脚本成为sql注入的目标使用
Prepared Statements
代替进行数据库操作关于php - 无法使用PHP将数据插入MySQL数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47385484/