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面向对象留言板(一)查询出JSON格式的留言板数据

使用mysqli连接数据库,采用面向对象风格编程,没做前端,json格式输出数据 源码目录: 效果: DB.php...
  • u012995856
  • u012995856
  • 2016年08月20日 10:41
  • 693

PHP+MySQL实现留言板分页功能

一个经典的测试例子,我建立的数据库名为testdb,数据表名为sktb与testmsg。testmsg表包括7个字段:id,email,title,content,ip,time,other。 ...
  • freshlover
  • freshlover
  • 2013年02月20日 16:47
  • 6087

PHP+SQlite 制作简单的留言板

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了...
  • huangjianxiang1875
  • huangjianxiang1875
  • 2012年07月26日 09:29
  • 3744

PHP PDO ACCESS 留言板-删除留言deleteMessage.php

deleteMessage.php
  • u011924274
  • u011924274
  • 2016年04月11日 10:52
  • 557

php实现畅言留言板和网易跟帖样式

我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的 php实现畅言留言板和网易跟帖样式   和 php实现畅言留言板和网易跟帖样式...
  • qq_33382313
  • qq_33382313
  • 2016年06月21日 14:31
  • 636

PHP之面向对象三大成员变量

2017.04.10潇照的第一篇博客~~~~~~~~~~~ 面向对象类中的三大成员变量public,protected,private public成员变量可以被自己,子类,任何部位访问 ...
  • qq_38247638
  • qq_38247638
  • 2017年04月10日 16:42
  • 288

PHP---面向对象的3个特性

面向对象有3个特性, 1是封装 2是继承 3是多态 封装 就是类中的属性,一般不直接被类外调用,使用get和set方法调用,封装后使用。封装后安全性高,属性和方法有访问3个修饰符  ...
  • huyishero
  • huyishero
  • 2016年11月22日 23:04
  • 230

简易留言板(数据库交互)

刚开始学php自己在文本式留言板的基础上琢磨出来的。 index.php $link=mysqli_connect("localhost","root","6464","liuyan"); $sq...
  • gejunjie1401
  • gejunjie1401
  • 2016年02月24日 23:52
  • 350

基于mvc的留言板

今天翻看了15年自己刚刚学php的时候基于mvc写的留言板,那个时候写的代码真是完全纯php,不用框架,自己搭建环境,自己写增删查改.想想快工作两年的自己,后来学习了TP3,并且也谢了demo练习,有...
  • resilient
  • resilient
  • 2017年06月13日 21:38
  • 519

php+mysql 最简单的留言板

学完了记得动手操作。
  • think_ycx
  • think_ycx
  • 2015年08月13日 01:07
  • 2064
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP面向对象留言板(三)模拟客户端传来的JSON格式的数据写入数据库
举报原因:
原因补充:

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