我无法将数据插入MySQL表

时间:2017-06-07 06:59:57

标签: php mysql sql pdo insert-into

我只有在尝试插入数据时才遇到问题,当我尝试将数据插入到具有不同值集的另一个表时,相同的代码运行得非常好。

<?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> &nbsp; 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配置文件。

请帮帮我哪里出错?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。这对我有用,也许也适合你。

为所有字符串变量设置日期时间也可以(不知道你的数据库)这个:

$atitle = '"'.$_POST['actitle'].'"';

或代替“做”。

我希望这对你有帮助^^