PHP面向对象留言板(三)模拟客户端传来的JSON格式的数据写入数据库

来源:互联网 发布:sql改变表结构的语句 编辑:程序博客网 时间:2024/06/05 08:56

PHP面向对象留言板(三)模拟客户端传来的JSON格式的数据写入数据库

code:https://code.csdn.net/u012995856/oop_liuyanban/tree/master

效果图:
这里写图片描述

这里写图片描述

本打算是前端ajax提交json格式数据,调试了很长时间还没实现,就使用PHP模拟了前端提交的json数据.

json数据中id的key-value先用作存储对象的名字也就是对应的实体名即数据库表名.

计划model中提供通用的insert方法,解析json数据,自动由与数据库表字段对应的key写value,但是没实现

代码:
Model.php

<?php/** *模型类,介于实体类与数据库表之间的存在,是拥有数据的实体类集合 * */require 'DB.php';class Model{  private $obj;  private $entity_name;  private $db;  private $container;  //构造方法  //根据实例化Model时的传入参数  //自动加载实体类,并实例化  function __construct($entity){    $this->entity_name = $entity;//暂存实体类类名    $this->db = new DB;    set_include_path('./');//设置自动加载目录    spl_autoload_register();//自动加载    $this->obj = new $entity;//实例化实体类  }  //根据模型自动查询数据,将结果集对象化到容器,返回对象容器  public function get_all(){    $sql = 'select * from '.$this->entity_name;    $result = $this->db->query($sql);    $container = new SplObjectStorage();//实例化对象容器    while ($entity_obj = $result->fetch_object()) {        $container->attach($entity_obj);    }    return $container;  }//将一条数据写入数据库  public function _insert($obj_json_format){//解析json    $temp = json_decode($obj_json_format);//构建sql    $sql =  'insert into liuyanban values("'.$temp->lyb_id.'","'.$temp->lyb_title.'","'.$temp->lyb_content.'","'.$temp->lyb_author.'","'.$temp->lyb_time.'","'.$temp->lyb_authoremail.'",'.$temp->lyb_pass.')';//返回数据库执行结果 true or false    return $this->db->query($sql);  }}

add.php

<?phprequire 'Model.php';/** *控制器 *接收json格式数据, *调用Model */ //模拟客户端传来的JSON格式的数据// id 处理前作为传递model对象的类名//之后作为表id$arr = array(  'lyb_id' => 'liuyanban',  'lyb_author' => 'py',  'lyb_title' => '留言数据',  'lyb_content' => '留言内容',  'lyb_time' => time(),  'lyb_authoremail' => 'pangPython@qq.com',  'lyb_pass' => 1 );$lybjson = json_encode($arr);//上面接收来自客户端的数据$_obj = json_decode($lybjson);//解码json$class_name = $_obj->lyb_id;//暂存表名$_obj->lyb_id = md5(time());//使用md5+Unix时间戳作为每条记录的id$model = new Model($class_name);// var_dump($_obj->lyb_id);//if ($model->_insert(json_encode($_obj))) {  echo '留言写入成功!';}else {  echo '留言写入失败!';}//echo $model->_insert(json_encode($_obj));// print_r($_obj);
1 0
原创粉丝点击