PHP ORM(面向对象PDO数据库框架&API框架)
自主封装的PHP ORM框架,面向对象的PDO数据库操作,API框架,支持Get/Post/Put/Delete多种请求方式。 代码示例: <?php use Models\User; require '../application.php'; require '../loader-api.php'; //适合查询,如:获取用户列表或者单个用户信息 execute_request(HttpRequestMethod::Get, function() { $action = request_action(); //判断是否存在 if ($action == 1) { list($type, $value) = filter_request(array( request_int('type', 1, 2, 3), //1.用户名 2.邮箱 3.手机号 request_string('value'))); $type_field_map = array( 1 => User::$field_username, 2 => User::$field_email, 3 => User::$field_phone ); if ($type == 2 && !is_email($value) || $type == 3 && !is_mobilephone($value)) { die_error(USER_ERROR, $type_field_map[$type]['name'] . '格式无效'); } $user = new User(); $user->set_where_and($type_field_map[$type], SqlOperator::Equals, $value); $result = $user->exists(create_pdo()); echo_result($result ? 1 : 0); //存在返回1,不存在返回0 } //查询单条信息 if ($action == 2) { list($userid) = filter_request(array( request_userid())); //查询单条数据 $user = new User($userid); //set_query_fields可以指定查询字段,下面两种写法均可 //$user->set_query_fields('userid, username, email'); //$user->set_query_fields(array(User::$field_userid, User::$field_username, User::$field_email)); //还可设置where条件进行查询 //$user->set_where_and(User::$field_status, SqlOperator::Equals, 3); //$user->set_where_and(User::$field_truename, SqlOperator::IsNullOrEmpty); //$user->set_where_and(User::$field_age, SqlOperator::In, array(27, 29)); //$user->set_where_and(User::$field_regtime, SqlOperator::LessThan, '-6 month'); //创建数据库连接 $db = create_pdo(); $result = $user->load($db, $user); //也可以用Model类的静态方法 //$result = Model::load_model($db, $user, $user); if (!$result[0]) die_error(PDO_ERROR_CODE, '获取用户信息时数据库错误'); if (!$user) die_error(USER_ERROR, '不存在此用户'); echo_result($user->to_array()); } }); //适合新增数据操作 execute_request(HttpRequestMethod::Post, function() { list($username, $email) = filter_request(array( request_string('username'), request_email('email'))); //设置其他信息(假数据,仅供测试) $password = md5('888888'); $phone = '189' . str_shuffle('25688990'); $age = mt_rand(18, 30); $userInfo = array( 'password' => $password, 'phone' => $phone, 'age' => $age ); //新增数据 $user = new User(0, true); //第二个参数true表示实例化后赋初始值 $user->set_username($username); $user->set_email($email); //创建数据库连接 $db = create_pdo(); //开始事务 pdo_transaction($db, function($db) use($user, $userInfo) { $result = $user->insert($db); if (!$result[0]) throw new TransactionException(PDO_ERROR_CODE, '注册用户失败', $result); $user->reset(); // 不调用reset(),会更新所有字段 $user->set_password($userInfo['password']); $user->set_phone($userInfo['phone']); $user->set_age($userInfo['age']); $result = $user->update($db); if (!$result[0]) throw new TransactionException(PDO_ERROR_CODE, '更新用户失败', $result); }); echo_msg('注册成功'); //可以直接提交json,用下面方式接收 $newUser = request_object(); //$newUser = request_array(); }); //适合更新数据操作 execute_request(HttpRequestMethod::Put, function() { //可以直接提交json,用下面方式接收 $newUser = request_object(); //$newUser = request_array(); $user = new User(); $user->set_field_from_array($newUser); $result = $user->update($db); if (!$result[0]) die_error(USER_ERROR, '更新失败'); echo_msg('更新成功'); }); //适合删除操作 execute_request(HttpRequestMethod::Delete, function() { $userid = request_object_id(); //删除数据 $user = new User($userid); //还可设置where条件进行删除 //$user->set_where_and(User::$field_status, SqlOperator::Equals, 3); //$user->set_where_and(User::$field_truename, SqlOperator::IsNullOrEmpty); //$user->set_where_and(User::$field_age, SqlOperator::In, array(27, 29)); //$user->set_where_and(User::$field_regtime, SqlOperator::LessThan, '-6 month'); //创建数据库连接 $db = create_pdo(); $result = $user->delete($db); //也可以用Model类的静态方法 //$result = Model::delete_model($db, $user); if (!$result[0]) die_error(USER_ERROR, '删除用户数据时数据库错误'); echo_msg('删除成功'); });
- 1
- 粉丝: 3
- 资源: 24
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip