无法使用PHP将数据插入MySQL数据库
我无法将数据插入MySQL数据库。我不知道原因,因为没有触发错误。我在windows上使用XAMPP运行本地服务器。这是代码。如果有人能帮忙,那就太好了 我总是得到“未插入的值”输出。当我通过SQL查询的值(“$email”,…)部分中的一个表单获得输入的精确值时,我还尝试打印$query无法使用PHP将数据插入MySQL数据库,php,mysql,Php,Mysql,我无法将数据插入MySQL数据库。我不知道原因,因为没有触发错误。我在windows上使用XAMPP运行本地服务器。这是代码。如果有人能帮忙,那就太好了 我总是得到“未插入的值”输出。当我通过SQL查询的值(“$email”,…)部分中的一个表单获得输入的精确值时,我还尝试打印$query <?php $dbconnect = mysqli_connect("localhost","root","","id3626001_login_details"); if (!$dbconnec
<?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注入的目标
改为用于数据库操作查询中有问题
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注入的目标
改为用于数据库操作在查询中,您忘记在上面加引号“
->$username”
$query = "INSERT INTO user_registration (email, username, password) VALUES ('$email', '$username', '".md5($password)."')";
这里我们不是将Id作为参数传递,所以您需要在该表的数据库中使Id自动递增
为什么要将查询传递两次到mysqli_query(),您可以检查一次,就像
$result = mysqli_query($dbconnect, $query);
if ($result)
{
echo "Registration Successful";
}
else{
echo "Values not inserted";
}
在您的查询中,您忘了在上面加引号”
->$username'
$query = "INSERT INTO user_registration (email, username, password) VALUES ('$email', '$username', '".md5($password)."')";
这里我们不是将Id作为参数传递,所以您需要在该表的数据库中使Id自动递增
为什么要将查询传递两次到mysqli_query(),您可以检查一次,就像
$result = mysqli_query($dbconnect, $query);
if ($result)
{
echo "Registration Successful";
}
else{
echo "Values not inserted";
}
在您的查询中,列数和值是不同的Hanks@Irony Stack我编辑了我的答案。谢谢你指点我。在你的查询中,列数和值是不同的Hanks@Irony Stack我编辑了我的答案。谢谢你指点我。