Php PDO未在数据库中插入数据
我正在尝试使用PDO和OOP创建注册页面。我已经花了3个小时,但找不到我的代码有什么问题。一切都很好(我已经调试过了),但数据并没有插入到数据库中 Db1.phpPhp PDO未在数据库中插入数据,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试使用PDO和OOP创建注册页面。我已经花了3个小时,但找不到我的代码有什么问题。一切都很好(我已经调试过了),但数据并没有插入到数据库中 Db1.php <?php class Db1 { private $host = "localhost"; private $user = "root"; private $db = "website"; private $pass = ""; public $conn ; public fu
<?php
class Db1
{
private $host = "localhost";
private $user = "root";
private $db = "website";
private $pass = "";
public $conn ;
public function __construct()
{
$this->conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass);
}
public function getconn()
{
return $this->conn;
}
}
?>
<?php
include_once("Db1.php");
class users extends Db1
{
private $id;
private $name;
private $email;
private $password;
private $member_since;
private $last_seen;
private $country;
private $city;
private $reputation;
private $status;
public function insertData($name,$email,$password,$country="",$city="")
{
$sql = "INSERT INTO users (name,email,password,member_since,last_seen,country,points,city,status) VALUES (name=:name,email=:email,password=:password,member_since=:member_since,last_seen=:last_seen,country=:country,reputation=:reputation,city=:city,status=:status";
// i have tried this also.
//$sql = "INSERT INTO users SET name=:name,email=:email,password=:password,country=:country,city=:city,reputation=:reputation,member_since=:member_since,last_seen=:last_seen,status=:status";
$q = parent::getconn()->prepare($sql);
$q->execute(array(':name'=>$name,':email'=>$email,':password'=>$password,':country'=>$country,':city'=>$city,':reputation'=>3,':member_since'=>date("y-m-d h:i:s"),':last_seen'=>date("y-m-d h:i:s"),':status'=>'a'));
return true;
}
}
?>
<?php
if(isset($_POST['signup'])){
include_once("classes/users.php");
$obj = new users;
if($obj->insertData($_POST['name'],$_POST['email'],$_POST['password'])){
echo"data inserted!";
}
}
?>
<section id="create_account">
<div class="container">
<div class="center">
<div class="row">
<h2>Create Account</h2>
</div>
</div>
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-4">
<form method="POST" action="signup.php">
<div class="form-group">
<label>Name *</label>
<input type="text" name="name" class="form-control" required="required">
</div>
<div class="form-group">
<label>Email *</label>
<input type="email" name="email" class="form-control" required="required">
</div>
<div class="form-group">
<label>Password *</label>
<input type="password" name="password" class="form-control" required="required">
</div>
<div class="form-group">
<label>Confirm Password *</label>
<input type="password" name="cpassword" class="form-control" required="required">
</div>
<input type="submit" class="btn btn-primary btn-lg" name="signup" value="Create Account"/>
</form>
</div>
<div class="col-md-4">
</div>
</div>
</div>
</section>
users.php
<?php
class Db1
{
private $host = "localhost";
private $user = "root";
private $db = "website";
private $pass = "";
public $conn ;
public function __construct()
{
$this->conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass);
}
public function getconn()
{
return $this->conn;
}
}
?>
<?php
include_once("Db1.php");
class users extends Db1
{
private $id;
private $name;
private $email;
private $password;
private $member_since;
private $last_seen;
private $country;
private $city;
private $reputation;
private $status;
public function insertData($name,$email,$password,$country="",$city="")
{
$sql = "INSERT INTO users (name,email,password,member_since,last_seen,country,points,city,status) VALUES (name=:name,email=:email,password=:password,member_since=:member_since,last_seen=:last_seen,country=:country,reputation=:reputation,city=:city,status=:status";
// i have tried this also.
//$sql = "INSERT INTO users SET name=:name,email=:email,password=:password,country=:country,city=:city,reputation=:reputation,member_since=:member_since,last_seen=:last_seen,status=:status";
$q = parent::getconn()->prepare($sql);
$q->execute(array(':name'=>$name,':email'=>$email,':password'=>$password,':country'=>$country,':city'=>$city,':reputation'=>3,':member_since'=>date("y-m-d h:i:s"),':last_seen'=>date("y-m-d h:i:s"),':status'=>'a'));
return true;
}
}
?>
<?php
if(isset($_POST['signup'])){
include_once("classes/users.php");
$obj = new users;
if($obj->insertData($_POST['name'],$_POST['email'],$_POST['password'])){
echo"data inserted!";
}
}
?>
<section id="create_account">
<div class="container">
<div class="center">
<div class="row">
<h2>Create Account</h2>
</div>
</div>
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-4">
<form method="POST" action="signup.php">
<div class="form-group">
<label>Name *</label>
<input type="text" name="name" class="form-control" required="required">
</div>
<div class="form-group">
<label>Email *</label>
<input type="email" name="email" class="form-control" required="required">
</div>
<div class="form-group">
<label>Password *</label>
<input type="password" name="password" class="form-control" required="required">
</div>
<div class="form-group">
<label>Confirm Password *</label>
<input type="password" name="cpassword" class="form-control" required="required">
</div>
<input type="submit" class="btn btn-primary btn-lg" name="signup" value="Create Account"/>
</form>
</div>
<div class="col-md-4">
</div>
</div>
</div>
</section>
signup.php
<?php
class Db1
{
private $host = "localhost";
private $user = "root";
private $db = "website";
private $pass = "";
public $conn ;
public function __construct()
{
$this->conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass);
}
public function getconn()
{
return $this->conn;
}
}
?>
<?php
include_once("Db1.php");
class users extends Db1
{
private $id;
private $name;
private $email;
private $password;
private $member_since;
private $last_seen;
private $country;
private $city;
private $reputation;
private $status;
public function insertData($name,$email,$password,$country="",$city="")
{
$sql = "INSERT INTO users (name,email,password,member_since,last_seen,country,points,city,status) VALUES (name=:name,email=:email,password=:password,member_since=:member_since,last_seen=:last_seen,country=:country,reputation=:reputation,city=:city,status=:status";
// i have tried this also.
//$sql = "INSERT INTO users SET name=:name,email=:email,password=:password,country=:country,city=:city,reputation=:reputation,member_since=:member_since,last_seen=:last_seen,status=:status";
$q = parent::getconn()->prepare($sql);
$q->execute(array(':name'=>$name,':email'=>$email,':password'=>$password,':country'=>$country,':city'=>$city,':reputation'=>3,':member_since'=>date("y-m-d h:i:s"),':last_seen'=>date("y-m-d h:i:s"),':status'=>'a'));
return true;
}
}
?>
<?php
if(isset($_POST['signup'])){
include_once("classes/users.php");
$obj = new users;
if($obj->insertData($_POST['name'],$_POST['email'],$_POST['password'])){
echo"data inserted!";
}
}
?>
<section id="create_account">
<div class="container">
<div class="center">
<div class="row">
<h2>Create Account</h2>
</div>
</div>
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-4">
<form method="POST" action="signup.php">
<div class="form-group">
<label>Name *</label>
<input type="text" name="name" class="form-control" required="required">
</div>
<div class="form-group">
<label>Email *</label>
<input type="email" name="email" class="form-control" required="required">
</div>
<div class="form-group">
<label>Password *</label>
<input type="password" name="password" class="form-control" required="required">
</div>
<div class="form-group">
<label>Confirm Password *</label>
<input type="password" name="cpassword" class="form-control" required="required">
</div>
<input type="submit" class="btn btn-primary btn-lg" name="signup" value="Create Account"/>
</form>
</div>
<div class="col-md-4">
</div>
</div>
</div>
</section>
创建帐户
名字*
电子邮件*
密码*
确认密码*
请尝试此。。查询中缺少结束圆括号
<?php
include_once("Db1.php");
class users extends Db1
{
private $id;
private $name;
private $email;
private $password;
private $member_since;
private $last_seen;
private $country;
private $city;
private $reputation;
private $status;
public function insertData($name,$email,$password,$country="",$city="")
{
$sql = "INSERT INTO users (name,email,password,member_since,last_seen,country,points,city,status) VALUES (:name,:email,:password,:member_since,:last_seen,:country,:reputation,:city,:status)";
$q = parent::getconn()->prepare($sql);
$q->execute(array(':name'=>$name,':email'=>$email,':password'=>$password,':country'=>$country,':city'=>$city,':reputation'=>3,':member_since'=>date("y-m-d h:i:s"),':last_seen'=>date("y-m-d h:i:s"),':status'=>'a'));
return true;
}
}
?>
您错过了PHP.NET中的prepare语句:
$sql = "INSERT INTO REGISTRY (name, value) VALUES (:name, :value)";
但是你尝试去做
$sql = "... VALUES (name=:name,email=:email,password=:password,member_since=:member_since,last_seen=:last_seen,country=:country,reputation=:reputation,city=:city,status=:status";
您错过了结束括号^^从
name=:name
中删除name=
,只使用:name
部分。调整所有值