Php 数据不会插入mysql数据库,但代码运行时不会出错

Php 数据不会插入mysql数据库,但代码运行时不会出错,php,mysql,html,Php,Mysql,Html,我试图将表单数据插入mysql数据库,但它并没有插入到表中,并且并没有错误 这是我的密码 <?php $con = mysqli_connect('localhost', 'root', '', 'register'); if (isset($_POST['submit'])) { $shop = $_POST['shopname']; $name = $_POST['name']; $user = $_POST['username']; $email = $_POST[

我试图将表单数据插入mysql数据库,但它并没有插入到表中,并且并没有错误

这是我的密码

<?php
$con = mysqli_connect('localhost', 'root', '', 'register');

if (isset($_POST['submit'])) {
  $shop = $_POST['shopname'];
  $name = $_POST['name'];
  $user = $_POST['username'];
  $email = $_POST['email'];
  $password = $_POST['password'];
  $repassword = $_POST['repassword'];
  $phone = $_POST['phone'];
  $sql = "INSERT INTO registration (shop_name,name,username,email,password,repassword,phone) VALUES  ('$shop','$name''$user','$email','$password','$repassword','$phone')";
  if (mysqli_query($con, $sql)) {
    echo "Signup Sucessfull";
  } else {
    echo mysqli_error();
  }
}
?>

结果是你忘了在名字后面加逗号

'$name''$user'   // Missing comma in between
此外,它应该是mysqli_error($con),而不是mysqli_error()

尝试一些调试:

$sql = "INSERT INTO registration (shop_name,name,username,email,password,repassword,phone) VALUES  ('".$shop."','".$name."', '".$user."','".$email."','".$password."','".$repassword."','".$phone."')";

mysqli_query($con, $sql) or die(mysqli_error($con));

结果你忘了在名字后面加逗号

'$name''$user'   // Missing comma in between
此外,它应该是mysqli_error($con),而不是mysqli_error()

尝试一些调试:

$sql = "INSERT INTO registration (shop_name,name,username,email,password,repassword,phone) VALUES  ('".$shop."','".$name."', '".$user."','".$email."','".$password."','".$repassword."','".$phone."')";

mysqli_query($con, $sql) or die(mysqli_error($con));
您似乎错过了插入值之间的“,”。这个代码可以正常工作


您似乎错过了插入值之间的“,”。这个代码可以正常工作


是的,已经指出了你愚蠢的错误
靠近
“$name”$user”

我强烈建议您使用以避免SQL注入

<?php
$con = mysqli_connect('localhost', 'root', '', 'register');
if (isset($_POST['submit'])) {

  $stmt = mysqli_prepare($con, "INSERT INTO registration (shop_name,name,username,email,password,repassword,phone) VALUES (?, ?, ?, ?,?, ?, ?)");
  mysqli_stmt_bind_param($stmt, 'sssssss',$_POST['shopname'],$_POST['name'],$_POST['username'],$_POST['email'],$_POST['password'],$_POST['repassword'],$_POST['phone']);

  if (mysqli_stmt_execute($stmt)) {
    echo "Signup Sucessfull";
  } else {
    echo mysqli_error($con);
  }
}
?>
是的,已经指出了你愚蠢的错误 靠近
“$name”$user”

我强烈建议您使用以避免SQL注入

<?php
$con = mysqli_connect('localhost', 'root', '', 'register');
if (isset($_POST['submit'])) {

  $stmt = mysqli_prepare($con, "INSERT INTO registration (shop_name,name,username,email,password,repassword,phone) VALUES (?, ?, ?, ?,?, ?, ?)");
  mysqli_stmt_bind_param($stmt, 'sssssss',$_POST['shopname'],$_POST['name'],$_POST['username'],$_POST['email'],$_POST['password'],$_POST['repassword'],$_POST['phone']);

  if (mysqli_stmt_execute($stmt)) {
    echo "Signup Sucessfull";
  } else {
    echo mysqli_error($con);
  }
}
?>
问题解决了。您忘记了MySQL错误输出的连接详细信息
$con
。这将正确地输出查询中的MySQL语法错误


其他说明:
  • 为MySQLi()使用准备好的语句
  • 使用适当的密码哈希算法,例如。不要使用MD5(速度太快,冲突太多),也不要将密码存储为明文
  • 使用发布的变量上的各种选项来清除这些变量,并确保捕获任何无效数据(例如不正确的电子邮件地址)
问题解决了。您忘记了MySQL错误输出的连接详细信息
$con
。这将正确地输出查询中的MySQL语法错误


其他说明:
  • 为MySQLi()使用准备好的语句
  • 使用适当的密码哈希算法,例如。不要使用MD5(速度太快,冲突太多),也不要将密码存储为明文
  • 使用发布的变量上的各种选项来清除这些变量,并确保捕获任何无效数据(例如不正确的电子邮件地址)

在sql查询中输入逗号,如下所示

 $sql = "INSERT INTO registration (shop_name,name,username,email,password,repassword,phone)VALUES  
('$shop','$name','$user','$email','$password','$repassword','$phone')";

在sql查询中输入逗号,如下所示

 $sql = "INSERT INTO registration (shop_name,name,username,email,password,repassword,phone)VALUES  
('$shop','$name','$user','$email','$password','$repassword','$phone')";

所以,“注册成功”消息来了?这是一个与您的问题无关的问题,但在数据库中存储密码和重复密码是没有意义的。在PHP中进行比较,如果不匹配则失败,如果匹配则只存储一次。另外,不要以纯文本形式存储密码,请使用进行散列,并使用来消除当前SQL注入的风险。因此,除了您的问题之外,还会出现“注册成功”消息,但在数据库中存储密码和重复密码是没有意义的。在PHP中进行比较,如果不匹配则失败,如果匹配则只存储一次。另外,不要以纯文本形式存储密码,请使用散列,并使用以消除当前SQL注入的风险。
md5
不建议用于密码加密。此哈希已被多次破坏,速度太快。改为使用PHP
password\u hash
我是PHP新手,我只想将数据存储到数据库中,是的,我将存储加密的密码而不是纯文本使用此代码后也不会插入数据库@Ashutosh?
md5
不建议用于密码加密。此哈希已被多次破坏,速度太快。改用PHP
password\u hash
我是PHP新手,我只想将数据存储到数据库中,是的,我将存储加密的密码,而不是纯文本使用此代码后也不会插入数据库@Ashutosh?我在两个变量之间加了逗号,但它没有解决我的问题它仍在运行,没有任何错误,但没有保存到数据库我在两个变量之间加了逗号,但并没有解决我的问题。它仍然在运行,没有任何错误,但没有保存到数据库中