Php &引用;致命错误:对boolean()调用成员函数execute();尝试在ajax中更新数据库时
下面是我在互联网上找到的index.php文件 我已经写了我所有的代码,一切正常,除了表单没有提交,没有显示“注册成功完成”的警告消息 相反,我得到了以下错误: 致命错误:在第行的布尔()上调用成员函数execute() 二十五 我还在一个名为“charu”的数据库中创建了一个tbl_register表,其中包含5列空值 HTML: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
<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),谢谢您的帮助。它工作得很好:)谢谢你的帮助。它工作得很好:)