我只有在尝试插入数据时才遇到问题,当我尝试将数据插入到具有不同值集的另一个表时,相同的代码运行得非常好。
<?php
class crud
{
private $db;
function __construct($DB_con)
{
$this->db = $DB_con;
}
public function create($atitle,$agen,$ams,$adob,$afn,$aln,$acob,$acoc,$aemail,$amob,$aaddr,$amesse) {
try
{
$stmt = $this->db->prepare("INSERT INTO contacts(title,gen,ms,dob,fn,ln,cob,coc,email,mob,addr,messe) VALUES(:atitle,:agen,:ams,:adob,:afn,:aln,:acob,:acoc,:aemail,:amob,:aaddr,:amesse)");
$stmt->bindparam(":atitle",$atitle);
$stmt->bindparam(":agen",$agen);
$stmt->bindparam(":ams",$ams);
$stmt->bindparam(":adob",$adob);
$stmt->bindparam(":afn",$afn);
$stmt->bindparam(":aln",$aln);
$stmt->bindparam(":acob",$acob);
$stmt->bindparam(":acoc",$acoc);
$stmt->bindparam(":aemail",$aemail);
$stmt->bindparam(":amob",$amob);
$stmt->bindparam(":aaddr",$aaddr);
$stmt->bindparam(":amesse",$amesse);
$stmt->execute();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
}
上面是用于插入数据的类。
<?php
include_once 'dbconfig.php';
if(isset($_POST['btn-save']))
{
$atitle = $_POST['actitle'];
$agen = $_POST['acgen'];
$ams = $_POST['acms'];
$acdate = $_POST['acdate'];
$adob = date('Y-m-d', strtotime(str_replace('-', '/', $acdate)));
$afn = $_POST['acfn'];
$aln = $_POST['acln'];
$acob = $_POST['accob'];
$acoc = $_POST['accoc'];
$aemail = $_POST['aemail'];
$amob = $_POST['acmob'];
$aaddr = $_POST['acaddr'];
$amesse = $_POST['acmesse'];
if($crud->create($atitle,$agen,$ams,$adob,$afn,$aln,$acob,$acoc,$aemail,$amob,$aaddr,$amesse))
{
header("Location: add-con.php?inserted");
}
else
{
header("Location: add-con.php?failure");
}
}
?>
<?php include_once 'header.php'; ?>
<div class="clearfix"></div>
<?php
if(isset($_GET['inserted']))
{
?>
<div class="container">
<div class="alert alert-info">
<strong>WOW!</strong> Record was inserted successfully <a href="index.php">HOME</a>!
</div>
</div>
<?php
}
else if(isset($_GET['failure']))
{
?>
<div class="container">
<div class="alert alert-warning">
<strong>SORRY!</strong> ERROR while inserting record !
</div>
</div>
<?php
}
?>
<div class="clearfix"></div><br />
<div class="container">
<form method='post'>
<table class='table table-bordered'>
<tr>
<td>Title</td>
<td><input type='text' name='actitle' class='form-control' required></td>
</tr>
<tr>
<td>Gender</td>
<td><input type='text' name='acgen' class='form-control' required></td>
</tr>
<tr>
<td>Marital Status</td>
<td><input type='text' name='acms' class='form-control' required></td>
</tr>
<tr>
<td>DOB</td>
<td><input type='text' name='acdate' class='form-control' required></td>
</tr>
<tr>
<td>First Name</td>
<td><input type='text' name='acfn' class='form-control' required></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type='text' name='acln' class='form-control' required></td>
</tr>
<tr>
<td>Country of Birth</td>
<td><input type='text' name='accob' class='form-control' required></td>
</tr>
<tr>
<td>COC</td>
<td><input type='text' name='accoc' class='form-control' required></td>
</tr>
<tr>
<td>email</td>
<td><input type='text' name='acemail' class='form-control' required></td>
</tr>
<tr>
<td>mob</td>
<td><input type='text' name='acmob' class='form-control' required></td>
</tr>
<tr>
<td>address</td>
<td><input type='text' name='acaddr' class='form-control' required></td>
</tr>
<tr>
<td>messege</td>
<td><input type='text' name='acmesse' class='form-control' required></td>
</tr>
<td colspan="2">
<button type="submit" class="btn btn-primary" name="btn-save">
<span class="glyphicon glyphicon-plus"></span> Create New Record
</button>
<a href="index.php" class="btn btn-large btn-success"><i class="glyphicon glyphicon-backward"></i> Back to index</a>
</td>
</tr>
</table>
</form>
</div>
<?php
include_once 'footer.php';
?>
这是我的html部分,我输入我的值。
<?php
$DB_host = "localhost";
$DB_user = "root";
$DB_pass = "";
$DB_name = "event";
try
{
$DB_con = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass);
$DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
include_once 'class.crud.php';
$crud = new crud($DB_con);
?>
这是db配置文件。
请帮帮我哪里出错?
答案 0 :(得分:0)
为所有字符串变量设置日期时间也可以(不知道你的数据库)这个:
$atitle = '"'.$_POST['actitle'].'"';
或代替“做”。
我希望这对你有帮助^^