Php &引用;致命错误:对boolean()调用成员函数execute();尝试在ajax中更新数据库时

Php &引用;致命错误:对boolean()调用成员函数execute();尝试在ajax中更新数据库时,php,jquery,ajax,validation,Php,Jquery,Ajax,Validation,下面是我在互联网上找到的index.php文件 我已经写了我所有的代码,一切正常,除了表单没有提交,没有显示“注册成功完成”的警告消息 相反,我得到了以下错误: 致命错误:在第行的布尔()上调用成员函数execute() 二十五 我还在一个名为“charu”的数据库中创建了一个tbl_register表,其中包含5列空值 HTML: <html> <head> <title>PHP Form Validation using P

下面是我在互联网上找到的index.php文件

我已经写了我所有的代码,一切正常,除了表单没有提交,没有显示“注册成功完成”的警告消息

相反,我得到了以下错误:

致命错误:在第行的布尔()上调用成员函数execute() 二十五

我还在一个名为“charu”的数据库中创建了一个tbl_register表,其中包含5列空值

HTML:

<html>  
    <head>  
        <title>PHP Form Validation using Parsleys.js Library</title>  
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  <script src="http://parsleyjs.org/dist/parsley.js"></script>
    </head>

    <body>  
        <div class="container">  
            <br />  
            <br />
   <br />
   <div class="table-responsive">  
    <h3 align="center">PHP Form Validation using Parsleys.js Library</h3><br />
    <div class="box">
     <form id="validate_form">
      <div class="row">
       <div class="col-xs-6">
        <div class="form-group">
         <label>First Name</label>
         <input type="text" name="first_name" id="first_name" placeholder="Enter First Name" required data-parsley-pattern="^[a-zA-Z]+$" data-parsley-trigger="keyup" class="form-control" />
        </div>
       </div>
       <div class="col-xs-6">
        <div class="form-group">
         <label>Last Name</label>
         <input type="text" name="last_name" id="last_name" placeholder="Last Name" required data-parsley-pattern="^[a-zA-Z ]+$" data-parsley-trigger="keyup" class="form-control" />
        </div>
       </div>
      </div>
      <div class="form-group">
       <label for="email">Email</label>
       <input type="text" name="email" id="email" placeholder="Email" required data-parsley-type="email" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <label for="password">Password</label>
       <input type="password" name="password" id="password" placeholder="Password" required data-parsley-length="[8, 16]" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <label for="cpassword">Confirm Password</label>
       <input type="password" name="confirm_password" id="confirm_password" placeholder="Confirm Password"data-parsley-equalto="#password" data-parsley-trigger="keyup" required class="form-control" />
      </div>
      <div class="form-group">
       <label for="cpassword">Website</label>
       <input type="text" id="website" name="website" placeholder="Website URL" data-parsley-type="url" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <div class="checkbox">
        <label><input type="checkbox" id="check_rules" name="check_rules" required /> I Accept the Terms & Conditions</label>
       </div>
      </div>
      <div class="form-group">
       <input type="submit" id="submit" name="submit" value="Submit" class="btn btn-success" />
      </div>
     </form>
    </div>
   </div>  
  </div>
    </body>  
</html>  
<script>  
$(document).ready(function(){  
    $('#validate_form').parsley();

    $('#validate_form').on('submit', function(event){
        event.preventDefault();
        if($('#validate_form').parsley().isValid())
        {
            $.ajax({
                url:"action.php",
                method:"POST",
                data:$(this).serialize(),
                beforeSend:function(){
                    $('#submit').attr('disabled','disabled');
                    $('#submit').val('Submitting...');
                },
                success:function(data)
                {
                    $('#validate_form')[0].reset();
                    $('#validate_form').parsley().reset();
                    $('#submit').attr('disabled',false);
                    $('#submit').val('Submit');
                    alert(data);
                }
            });
        }
    });
});  
</script>
<?php

sleep(5);

if(isset($_POST['first_name']))
{
    $connect = new mysqli("localhost", "root", "","charu");

    $data = array(
        ':first_name'  => $_POST['first_name'],
        ':last_name'  => $_POST['last_name'],
        ':email'   => $_POST['email'],
        ':password'   => $_POST['password'],
        ':website'   => $_POST['website']
    );

    $query = "
       INSERT INTO tbl_register 
       (first_name, last_name, email, password, website) 
       VALUES (:first_name, :last_name, :email, :password, :website)
    ";
    $statement = $connect->prepare($query);
    if($statement->execute($data))
    {
        echo 'Registration Completed Successfully...';
    }
}
?>

使用Parsleys.js库进行PHP表单验证



使用Parsleys.js库进行PHP表单验证
名字 姓 电子邮件 密码 确认密码 网站 我接受条款和条件
JQuery:

<html>  
    <head>  
        <title>PHP Form Validation using Parsleys.js Library</title>  
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  <script src="http://parsleyjs.org/dist/parsley.js"></script>
    </head>

    <body>  
        <div class="container">  
            <br />  
            <br />
   <br />
   <div class="table-responsive">  
    <h3 align="center">PHP Form Validation using Parsleys.js Library</h3><br />
    <div class="box">
     <form id="validate_form">
      <div class="row">
       <div class="col-xs-6">
        <div class="form-group">
         <label>First Name</label>
         <input type="text" name="first_name" id="first_name" placeholder="Enter First Name" required data-parsley-pattern="^[a-zA-Z]+$" data-parsley-trigger="keyup" class="form-control" />
        </div>
       </div>
       <div class="col-xs-6">
        <div class="form-group">
         <label>Last Name</label>
         <input type="text" name="last_name" id="last_name" placeholder="Last Name" required data-parsley-pattern="^[a-zA-Z ]+$" data-parsley-trigger="keyup" class="form-control" />
        </div>
       </div>
      </div>
      <div class="form-group">
       <label for="email">Email</label>
       <input type="text" name="email" id="email" placeholder="Email" required data-parsley-type="email" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <label for="password">Password</label>
       <input type="password" name="password" id="password" placeholder="Password" required data-parsley-length="[8, 16]" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <label for="cpassword">Confirm Password</label>
       <input type="password" name="confirm_password" id="confirm_password" placeholder="Confirm Password"data-parsley-equalto="#password" data-parsley-trigger="keyup" required class="form-control" />
      </div>
      <div class="form-group">
       <label for="cpassword">Website</label>
       <input type="text" id="website" name="website" placeholder="Website URL" data-parsley-type="url" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <div class="checkbox">
        <label><input type="checkbox" id="check_rules" name="check_rules" required /> I Accept the Terms & Conditions</label>
       </div>
      </div>
      <div class="form-group">
       <input type="submit" id="submit" name="submit" value="Submit" class="btn btn-success" />
      </div>
     </form>
    </div>
   </div>  
  </div>
    </body>  
</html>  
<script>  
$(document).ready(function(){  
    $('#validate_form').parsley();

    $('#validate_form').on('submit', function(event){
        event.preventDefault();
        if($('#validate_form').parsley().isValid())
        {
            $.ajax({
                url:"action.php",
                method:"POST",
                data:$(this).serialize(),
                beforeSend:function(){
                    $('#submit').attr('disabled','disabled');
                    $('#submit').val('Submitting...');
                },
                success:function(data)
                {
                    $('#validate_form')[0].reset();
                    $('#validate_form').parsley().reset();
                    $('#submit').attr('disabled',false);
                    $('#submit').val('Submit');
                    alert(data);
                }
            });
        }
    });
});  
</script>
<?php

sleep(5);

if(isset($_POST['first_name']))
{
    $connect = new mysqli("localhost", "root", "","charu");

    $data = array(
        ':first_name'  => $_POST['first_name'],
        ':last_name'  => $_POST['last_name'],
        ':email'   => $_POST['email'],
        ':password'   => $_POST['password'],
        ':website'   => $_POST['website']
    );

    $query = "
       INSERT INTO tbl_register 
       (first_name, last_name, email, password, website) 
       VALUES (:first_name, :last_name, :email, :password, :website)
    ";
    $statement = $connect->prepare($query);
    if($statement->execute($data))
    {
        echo 'Registration Completed Successfully...';
    }
}
?>

$(文档).ready(函数(){
$('validate_form')。欧芹();
$('validate_form')。在('submit',函数(事件){
event.preventDefault();
if($('#validate_form').parsley().isValid())
{
$.ajax({
url:“action.php”,
方法:“张贴”,
数据:$(this).serialize(),
beforeSend:function(){
$(“#提交”).attr('disabled','disabled');
$('提交').val('提交…');
},
成功:功能(数据)
{
$('validate_form')[0].reset();
$('validate_form').parsley().reset();
$(“#提交”).attr('disabled',false);
$('提交').val('提交');
警报(数据);
}
});
}
});
});  
action.php文件:

<html>  
    <head>  
        <title>PHP Form Validation using Parsleys.js Library</title>  
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  <script src="http://parsleyjs.org/dist/parsley.js"></script>
    </head>

    <body>  
        <div class="container">  
            <br />  
            <br />
   <br />
   <div class="table-responsive">  
    <h3 align="center">PHP Form Validation using Parsleys.js Library</h3><br />
    <div class="box">
     <form id="validate_form">
      <div class="row">
       <div class="col-xs-6">
        <div class="form-group">
         <label>First Name</label>
         <input type="text" name="first_name" id="first_name" placeholder="Enter First Name" required data-parsley-pattern="^[a-zA-Z]+$" data-parsley-trigger="keyup" class="form-control" />
        </div>
       </div>
       <div class="col-xs-6">
        <div class="form-group">
         <label>Last Name</label>
         <input type="text" name="last_name" id="last_name" placeholder="Last Name" required data-parsley-pattern="^[a-zA-Z ]+$" data-parsley-trigger="keyup" class="form-control" />
        </div>
       </div>
      </div>
      <div class="form-group">
       <label for="email">Email</label>
       <input type="text" name="email" id="email" placeholder="Email" required data-parsley-type="email" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <label for="password">Password</label>
       <input type="password" name="password" id="password" placeholder="Password" required data-parsley-length="[8, 16]" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <label for="cpassword">Confirm Password</label>
       <input type="password" name="confirm_password" id="confirm_password" placeholder="Confirm Password"data-parsley-equalto="#password" data-parsley-trigger="keyup" required class="form-control" />
      </div>
      <div class="form-group">
       <label for="cpassword">Website</label>
       <input type="text" id="website" name="website" placeholder="Website URL" data-parsley-type="url" data-parsley-trigger="keyup" class="form-control" />
      </div>
      <div class="form-group">
       <div class="checkbox">
        <label><input type="checkbox" id="check_rules" name="check_rules" required /> I Accept the Terms & Conditions</label>
       </div>
      </div>
      <div class="form-group">
       <input type="submit" id="submit" name="submit" value="Submit" class="btn btn-success" />
      </div>
     </form>
    </div>
   </div>  
  </div>
    </body>  
</html>  
<script>  
$(document).ready(function(){  
    $('#validate_form').parsley();

    $('#validate_form').on('submit', function(event){
        event.preventDefault();
        if($('#validate_form').parsley().isValid())
        {
            $.ajax({
                url:"action.php",
                method:"POST",
                data:$(this).serialize(),
                beforeSend:function(){
                    $('#submit').attr('disabled','disabled');
                    $('#submit').val('Submitting...');
                },
                success:function(data)
                {
                    $('#validate_form')[0].reset();
                    $('#validate_form').parsley().reset();
                    $('#submit').attr('disabled',false);
                    $('#submit').val('Submit');
                    alert(data);
                }
            });
        }
    });
});  
</script>
<?php

sleep(5);

if(isset($_POST['first_name']))
{
    $connect = new mysqli("localhost", "root", "","charu");

    $data = array(
        ':first_name'  => $_POST['first_name'],
        ':last_name'  => $_POST['last_name'],
        ':email'   => $_POST['email'],
        ':password'   => $_POST['password'],
        ':website'   => $_POST['website']
    );

    $query = "
       INSERT INTO tbl_register 
       (first_name, last_name, email, password, website) 
       VALUES (:first_name, :last_name, :email, :password, :website)
    ";
    $statement = $connect->prepare($query);
    if($statement->execute($data))
    {
        echo 'Registration Completed Successfully...';
    }
}
?>

您必须自己打印错误才能查看实际原因。 这样做。在if语句之后

else{
echo $connect->error;
echo $statement->error;
}
您可以复制并使用代码。我改了。它起作用了

if(isset($_POST['first_name']))
{
 $connect = new mysqli("localhost", "root", "","charu");


  $first_name  = $_POST['first_name'];
  $last_name  = $_POST['last_name'];
  $email   = $_POST['email'];
  $password   = $_POST['password'];
  $website   = $_POST['website'];

 $query = "
 INSERT INTO tbl_register 
 (first_name, last_name, email, password, website) 
 VALUES (?, ?, ?, ?, ?)
 ";
 if(!$statement = $connect->prepare($query)){
echo $connect->error;
echo $statement->error;

}
else{
$statement->bind_param("sssss", $first_name, $lastname, $email, $password, $website);
If(statement->execute()){
  echo 'Registration Completed Successfully...';
 }
} }

免费询问并让我知道反馈。

您必须自己打印错误以查看实际原因。 这样做。在if语句之后

else{
echo $connect->error;
echo $statement->error;
}
您可以复制并使用代码。我改了。它起作用了

if(isset($_POST['first_name']))
{
 $connect = new mysqli("localhost", "root", "","charu");


  $first_name  = $_POST['first_name'];
  $last_name  = $_POST['last_name'];
  $email   = $_POST['email'];
  $password   = $_POST['password'];
  $website   = $_POST['website'];

 $query = "
 INSERT INTO tbl_register 
 (first_name, last_name, email, password, website) 
 VALUES (?, ?, ?, ?, ?)
 ";
 if(!$statement = $connect->prepare($query)){
echo $connect->error;
echo $statement->error;

}
else{
$statement->bind_param("sssss", $first_name, $lastname, $email, $password, $website);
If(statement->execute()){
  echo 'Registration Completed Successfully...';
 }
} }

免费询问并让我知道反馈。

您必须将参数绑定到SQL查询,并告诉数据库参数是什么

// prepare sql and bind parameters
$query = "
 INSERT INTO tbl_register 
 (first_name, last_name, email, password, website) 
 VALUES (:first_name, :last_name, :email, :password, :website)
 ";

$statement = $connect->prepare($query);

$statement->bindParam(':first_name', $_POST['first_name']);
$statement->bindParam(':last_name', $_POST['last_name']);
$statement->bindParam(':email', $_POST['email']);
$statement->bindParam(':password', $_POST['password']);
$statement->bindParam(':website', $_POST['website']);

 if($statement->execute())
 {
    echo 'Registration Completed Successfully...';
 }

您必须将参数绑定到SQL查询,并告诉数据库参数是什么

// prepare sql and bind parameters
$query = "
 INSERT INTO tbl_register 
 (first_name, last_name, email, password, website) 
 VALUES (:first_name, :last_name, :email, :password, :website)
 ";

$statement = $connect->prepare($query);

$statement->bindParam(':first_name', $_POST['first_name']);
$statement->bindParam(':last_name', $_POST['last_name']);
$statement->bindParam(':email', $_POST['email']);
$statement->bindParam(':password', $_POST['password']);
$statement->bindParam(':website', $_POST['website']);

 if($statement->execute())
 {
    echo 'Registration Completed Successfully...';
 }

您应该使用
bind_params()

替换这个

  $data = array(
    ':first_name'  => $_POST['first_name'],
    ':last_name'  => $_POST['last_name'],
    ':email'   => $_POST['email'],
    ':password'   => $_POST['password'],
    ':website'   => $_POST['website']
   );

   $query = "
   INSERT INTO tbl_register 
   (first_name, last_name, email, password, website) 
   VALUES (:first_name, :last_name, :email, :password, :website)
   ";
   $statement = $connect->prepare($query);

   if($statement->execute($data))
   {
    echo 'Registration Completed Successfully...';
   }


  with


  $query = "
   INSERT INTO tbl_register 
   (first_name, last_name, email, password, website) 
   VALUES (?,?,?,?,?)
   ";
   $statement = $connect->prepare($query);

   $statement->bind_param('sssss',$_POST['first_name'],$_POST['last_name'],$_POST['email'],$_POST['password'],$_POST['website']);

   //here 's' in sssss stands for string and all your parameters are string so five 's' are added 

   if($statement->execute())
   {
    echo 'Registration Completed Successfully...';
   }

您应该使用
bind_params()

替换这个

  $data = array(
    ':first_name'  => $_POST['first_name'],
    ':last_name'  => $_POST['last_name'],
    ':email'   => $_POST['email'],
    ':password'   => $_POST['password'],
    ':website'   => $_POST['website']
   );

   $query = "
   INSERT INTO tbl_register 
   (first_name, last_name, email, password, website) 
   VALUES (:first_name, :last_name, :email, :password, :website)
   ";
   $statement = $connect->prepare($query);

   if($statement->execute($data))
   {
    echo 'Registration Completed Successfully...';
   }


  with


  $query = "
   INSERT INTO tbl_register 
   (first_name, last_name, email, password, website) 
   VALUES (?,?,?,?,?)
   ";
   $statement = $connect->prepare($query);

   $statement->bind_param('sssss',$_POST['first_name'],$_POST['last_name'],$_POST['email'],$_POST['password'],$_POST['website']);

   //here 's' in sssss stands for string and all your parameters are string so five 's' are added 

   if($statement->execute())
   {
    echo 'Registration Completed Successfully...';
   }

我复制了此内容并替换为上一个内容,现在它显示“第32行中的解析错误语法错误,其中execute方法必须工作。现在要做什么?哪一行是第32行?我以为你说的是PDO。将bindParam更改为bind_param(“s”),将$firstname)我复制了此内容并替换为上一个内容,现在显示”解析错误第32行中的语法错误,其中execute方法必须工作。现在该怎么办?哪一条是32号线?我以为你说的是PDO。将bindParam更改为bind_param(“s”,$firstname),谢谢您的帮助。它工作得很好:)谢谢你的帮助。它工作得很好:)