PDO 操作

Original 2018-11-19 14:55:09 231
abstract:class User { public $name; public $email; public $work; public $age; &nbs
class User { public $name; public $email; public $work; public $age; public $sex; public $password; public $status; public $create_time; public $id; /** * User constructor. * @param $name * @param $email * @param $work * @param $age * @param $sex * @param $password * @param $status * @param $create_time */ public function __construct($name, $email, $work, $age, $sex, $password, $status, $create_time) { $this->name = $name; $this->email = $email; $this->work = $work; $this->age = $age; $this->sex = $sex; $this->password = $password; $this->status = $status; $this->create_time = $create_time; } } class PdoDao { public $pdo; /** * @param $obj 增加一条记录 */ public function insertOb($obj) { //1.处理sql 语句 // $sql ="insert into user (name,email,work,age,sex,password,status,create_time) values (:name,:email,:work,:age,:sex,:password,:status,:create_time)"; $data = (array)$obj; $obj = (array)$obj; $keys = implode(",", array_keys($obj)); $sql = 'insert into user ' . '(' . $keys . ')'; foreach ($obj as $k => $v) { $obj[$k] = ':' . $k; } $values = implode(",", array_values($obj)); $sql = $sql . ' values ' . ' ( ' . $values . ' ) '; $stmt = $this->pdo->prepare($sql); $datas = []; //2.对象转数组 并 封装成需求 数组 foreach ($data as $k => $v) { $datas[':' . $k] = $v; } //3.执行操作 if ($stmt->execute($datas)) { echo "执行成功"; echo "最后插入的ID:" . $this->pdo->lastInsertId(); } else { echo "执行失败"; var_dump($stmt->errorinfo()); } } /** * 更新一条记录 */ public function UpdateOb($arr) { //1. 根据参数动态生成 sql 预处理 //$sql ="update user set name=? where id=?"; // $sql = " UPDATE user SET name=:name WHERE id=:id "; $keys = []; foreach ($arr as $k => $v) { if ($k == 'id') { echo 'xxx'; } else { $keys[$k] = ':' . $k; } } $link=''; foreach ($keys as $k =>$v){ $link = $link .$k .'='.$v .','; } $link = substr($link,0,strlen($link)-1); $sql = 'UPDATE user SET ' . $link . ' WHERE id=:id '; //预处理SQL $stmt = $this->pdo->prepare($sql); $datas = []; //2.数据绑定 foreach ($arr as $k => $v) { $datas[':' . $k] = $v; } echo "
"; print_r($datas); //3.执行操作 if ($stmt->execute($datas)) { echo "执行成功"; echo "更改的 行" . $stmt->rowCount(); } else { echo "执行失败"; var_dump($stmt->errorinfo()); } } /** * 查询记录 */ public function SelectOb($id) { //1. 根据参数动态生成 sql 预处理 $sql = " SELECT * FROM user WHERE id >=:id "; //预处理SQL $stmt = $this->pdo->prepare($sql); //2.数据绑定 $datas = [':id'=>$id]; //3.执行操作 $stmt->execute($datas); echo "
"; //推荐这种方式来获取查询结果 while ($row=$stmt->fetch()) { var_dump($row); } } public function DbConnect() { $dsn = 'mysql:host=localhost;dbname=php_edu;port=3306;charset=utf8'; //数据源 = 数据库类型:host=主机地址;dbname=数据库名;port=数据库端口; $username = 'root';//用户名 $password = 'stan183';//密码 try { //1.连接 PDO $this->pdo = new PDO($dsn, $username, $password); // //2.操作数据库 //3.关闭PDO2种方式 (关闭不是必须,脚本结束会自动关闭,连接资源不够,也会把最早的关闭,建议显示关闭) // $pdo = null; // unset($pdo); //比较暴力 echo '连接成功。。。'; } catch (PDOException $e) { die('Could not connect to the database:
' . $e); } } /** * 数组 转 对象 * * @param array $arr 数组 * @return object */ function array_to_object($arr) { if (gettype($arr) != 'array') { return; } foreach ($arr as $k => $v) { if (gettype($v) == 'array' || getType($v) == 'object') { $arr[$k] = (object)array_to_object($v); } } return (object)$arr; } /** * 对象 转 数组 * * @param object $obj 对象 * @return array */ function object_to_array($obj) { $obj = (array)$obj; $obs = []; foreach ($obj as $k => $v) { if (gettype($v) == 'resource') { return; } else if (gettype($v) == 'object' || gettype($v) == 'array') { $obj[$k] = (array)object_to_array($v); } else { $obs[':' . $k] = $v; } } return $obs; } } //$sql ="insert into user (name,email,work,age,sex,password,status,create_time)values(:name,:email,:work,:age,:sex,:password,:status,:create_time)"; //insert //$sql ="insert into user set name=:na,email=:em,work=:wk,age=:ag,sex=:se,password=:psd,status=:sta,creat_time=:ct"; //$sql =" UPDATE user (name,email,work,age,sex,password,status,creat_time)values(:na,:em,:wk,:ag,:se,:psd,:sta,:ct)"; //update? //$sql ="insert into user (name,email,work,age,sex,password,status,creat_time)values(:na,:em,:wk,:ag,:se,:psd,:sta,:ct)"; //query //$stmt=$pdo->prepare($sql); // // //$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); // // $name = '周星星'; $work = '工程师'; $sex = 1; $age = 20; $email = 'neo123@gmail.com'; $st = 1; $ct = 2121; $psd = '密码'; $user = new User($name, $email, $work, $age, $sex, $psd, $st, $ct); $Dao = new PdoDao(); $Dao->DbConnect(); $data = [ 'id'=>22, 'name' => 'change', 'sex' => 0, 'age' => 11, 'status' => 0, 'create_time' => '22222', 'password' => 'no', 'email' => '我是email' ]; //增加一条记录 $Dao->insertOb($user); //更新数据 $Dao->UpdateOb($data); //根据 id 查询 $Dao->SelectOb('12');


Correcting teacher:查无此人Correction time:2018-11-19 15:19:18
Teacher's summary:写的不错,数据库操作熟悉了,php对你来说就没什么难的了。

Release Notes

Popular Entries