练习数据库添加操作

Original 2019-05-09 10:49:56 250
abstract:<?php //老师,这段代码哪里有问题吗,为什么我执行几次后,ID都自动变了呢,例如我现在增加了9条记录,执行这个代码提示没有添加记录,我修改赋值后再添加,ID不是从10开始的,而是跳过去好多。 /**/ //pdo 添加操作 //主要有五个步骤 //-----------------------------------------------------------------
<?php
//老师,这段代码哪里有问题吗,为什么我执行几次后,ID都自动变了呢,例如我现在增加了9条记录,执行这个代码提示没有添加记录,我修改赋值后再添加,ID不是从10开始的,而是跳过去好多。
/**/
//pdo 添加操作
//主要有五个步骤
//------------------------------------------------------------------//
//1.连接数据库,创建pdo对象
//2.创建SQL语句,命名占位符声明参数(IGNORE,必须写紧跟在 INSERT 的后面)
//3.验证SQL语句,创建预处理对象
//4参数绑定
//5.执行SQL语句(成功true,失败false)
//1步,连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php_edu;charset=utf8','root','root');
//var_dump( $pdo);测试是否连接成功
//2步,创建sql语句  占位符以冒号开始
$sql = "INSERT IGNORE INTO `user` (`name`,`sex`,`age`,`status`,`email`,`password`,`create_time`) VALUES (:name,:sex,:age,:status,:email,:password,:create_time)";
//3步,验证sql语句,创建预处理对象
$stmt =$pdo->prepare($sql);
//print_r($stmt);
//4步 参数绑定
$name = '单雄信';
$sex = 0;
$age = 45;
$email = 'shan@123.com';
$password = md5('123456');
$status = 1;
$createTime = time();
$stmt->bindParam('name',$name,PDO::PARAM_STR,20);
$stmt->bindParam(':sex',$sex,PDO::PARAM_INT);
$stmt->bindParam(':age',$age,PDO::PARAM_INT);
$stmt->bindParam(':status',$status,PDO::PARAM_INT);
$stmt->bindParam(':email',$email,PDO::PARAM_STR,100);
$stmt->bindParam(':password',$password,PDO::PARAM_STR,32);
$stmt->bindParam(':create_time',$createTime,PDO::PARAM_INT);
//5步,执行SQL语句

if ($stmt->execute()){
    //三元运算符
    //echo $stmt->execute();
    echo ($stmt->rowCount()>0) ? '成功添加了'.$stmt->rowCount().'条记录 ': '没有记录';
}else{
    //??好像没有执行过。
    exit(print_r($stmt->errorInfo(),true));
}


Correcting teacher:天蓬老师Correction time:2019-05-09 14:01:46
Teacher's summary:你可以用$stmt->debugDumpParams(), 将你要执行的SQL打印出来, 完了在数据库中先执行一下, 看是否正确, 参数是否已绑定成功

Release Notes

Popular Entries