【问题标题】:PHP values not going to the databasePHP 值不会进入数据库
【发布时间】:2017-05-25 09:35:44
【问题描述】:
session_start();
include('dbconn.php');
  if(isset($_POST['registerform']) || isset($_POST['loginform'])) {

    if(isset($_POST['registerform']) && $_POST['registerform']){
      //register

      if(isset($_POST['username']) && !empty($_POST['username'])
      && isset($_POST['password']) && !empty($_POST['password'])
      && isset($_POST['fname']) && !empty($_POST['fname'])
      && isset($_POST['lname']) && !empty($_POST['lname'])
      && isset($_POST['email']) && !empty($_POST['email'])){
        //ean einai gemata me kati ta paidia

        $myName=trim($_POST['username']);
        $myPass= md5(trim($_POST['password']));
        $fName=trim($_POST['fname']);
        $lName=trim($_POST['lname']);
        $eMail=trim($_POST['email']);


        if($stmt = $mysqli->prepare("INSTERT INTO users(username,password,fname,lname,email) VALUES (?, ?, ?, ?, ?)")) {


            $stmt->bind_param('sssss',$name,$pass,$fname,$lname,$email);

            $name = $myName;
            $pass = $myPass;
            $fname = $fName;
            $lname = $lName;
            $email = $eMail;

            $stmt-> execute();
            $stmt-> close();



        }

      }
    }


      }else{
        echo "no form submited";
      }

这是数据库连接

<?php

$host = "localhost";
$username = "root";
$password = "";
$db_name = "phpwebsite";


$mysqli = new mysqli("$host","$username","$password","$db_name");
// Check connection
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

?>

我认为问题在于插入语句,因为其他一切似乎都运行良好。当我按下注册按钮时,没有出现错误。唯一的问题是这些值不会进入数据库

【问题讨论】:

  • 错字错过拼写INSTERT
  • 很棒的收获。此外,!empty() 如果您只想确保变量不为空,就足够了
  • 制作 INSTERTINSERT 并尝试
  • ty 非常多,但现在的问题是执行 stmt 没有执行:(
  • MD5 不足以进行密码散列。请改用password_hash()password_verify()

标签: php mysqli insert


【解决方案1】:

错误出现在您的 SQL 查询中,我认为它是 INSTERT

类型
if($stmt = $mysqli->prepare("INSTERT INTO users(username,password,fname,lname,email) VALUES (?, ?, ?, ?, ?)"))

试着改成

if($stmt = $mysqli->prepare("INSERT INTO users(username,password,fname,lname,email) VALUES (?, ?, ?, ?, ?)"))    

编辑:

第二期:

try {   $stmt = $mysqli->prepare("INSERT INTO users(username,password,fname,lname,email) VALUES (?, ?, ?, ?, ?)")

    $stmt->bind_param('sssss',$name,
                      $pass,$fname,
                      $lname,$email);

     $name = $myName;
     $pass = $myPass;
     $fname = $fName;
     $lname = $lName;
     $email = $eMail;

     $stmt-> execute();
     $stmt-> close();

}
catch (PDOException $ex) {
    // For testing, you could use a die and message. 
    die("Failed to run query: " . $ex->getMessage());



  }

【讨论】:

  • 非常感谢先生。但现在的问题是 stmt var 没有被执行 :(
  • 我没有收到任何错误,这就是问题 if($stmt-> execute()){ echo "gg"; }else{ 回声“不”; } $stmt-> 关闭();
  • try { $stmt = $mysqli->prepare("INSERT INTO users(username,password,fname,lname,email) VALUES (?, ?, ?, ?, ?)") $stmt ->bind_param('sssss',$name, $pass,$fname, $lname,$email); $name = $我的名字; $pass = $myPass; $fname = $fname; $lname = $lname; $电子邮件 = $电子邮件; $stmt-> 执行(); $stmt-> 关闭(); } catch (PDOException $ex) { // 为了测试,你可以使用 die 和 message。 die("运行查询失败:" . $ex->getMessage()); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2013-06-24
  • 1970-01-01
  • 2020-09-30
相关资源
最近更新 更多