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

原创 2016年08月30日 19:16:11

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

<?php
require '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);
版权声明:本文为pangPython原创文章,转载注明出处:http://blog.csdn.net/u012995856.

相关文章推荐

PHP面向对象留言板(二)前后端分离,Model实现了实体类与表绑定

实现了实体类的自动加载,只需在model实例化时传入一个实体类名,即可实现实体类与数据库表的绑定 使用对象容器,在查询出结果集之后,直接生成对象并放入对象容器 取实体类数据时,会返回一个对象容器,遍历...

PHP面向对象留言板(一)查询出JSON格式的留言板数据

使用mysqli连接数据库,采用面向对象风格编程,没做前端,json格式输出数据 源码目录: 效果: DB.php...

JavaScript+IndexedDB实现留言板:客户端存储数据

之前看到贴友有问:用js怎么实现留言板效果。当时也写了一个,但是没有实现数据存储:http://www.ido321.com/591.html 现在将之前的改写一下,原来的HTML布局不变,为了防止...

从留言板开始做网站(八)——客户端的数据验证(JS验证方法)

这篇我给大家叙述下客户端验证用户的输入,一般都是用javascript的代码来实现的。 我们在首页的底部添加JS代码: var user = document.getElementById(...
  • wu1234a
  • wu1234a
  • 2016年10月08日 11:56
  • 183

基于web storage的客户端留言板

客户端留言板 客户端留言板 留言标题: 留言信息: 留言人: 留言标题 留...

后台怎么接收处理从url 客户端传来的json数据格式

最近做项目y

php实现post请求 接收android客户端json数据 存储数据库 并返回json

php实现post接口 接收android客户端json数据 存储数据库 并返回json大纲实现php端存储数据库类 实现php端接收post数据 实现php端返回json数据实现android ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP面向对象留言板(三)模拟客户端传来的JSON格式的数据写入数据库
举报原因:
原因补充:

(最多只允许输入30个字)