php小白一枚,初学php,经理让我做如下这个题,有好心人帮忙解决吗
数据库操作类需求(php)
目标:实现基于配置文件的数据库操作类,将各种不同的数据库操作集中在sql语句及其配置文件中
要求:
1、数据库操作库要用mysqli;
2、代码有一定的规范;
设计资源
1、会员表
CREATE TABLE `sys_member` (
`member_id` CHAR(6) NOT NULL,
`member_name` VARCHAR(50) NULL DEFAULT NULL,
`email` VARCHAR(50) NULL DEFAULT NULL,
`description` VARCHAR(500) NULL DEFAULT NULL,
PRIMARY KEY (`member_id`)
)
2、sql配置文件
{
"getMember":"select * from sys_member where member_id = @member_id",
"getMemberSearch":"select * from sys_member where member_name like '@name%' or member_email like '@name%'" 
}
3、入口函数
function executeSql($sqlName,$paras){
//读sql配置,根据$sqlName取对应的sql
//处理sql,处理参数
//执行//返回结果
}
4、测试
  4.1 取会员
  $member = executeSql("getMember",array("member_id","M0001"));
  4.2 搜索会员
  $members = executeSql("getMemberSearch",array("name","ss"));
还有个名为sqlconfig的json配置文件,内容就是2那个sql配置文件,有大神帮忙解答么

解决方案 »

  1.   

    参考:http://www.jb51.net/article/49160.htm
      

  2.   

    第一次用mysqli,个人认为:
    1、你的sql语句定义和数据表的定义是冲突的,其中的email字段名称不一致,member_id类型为char型,条件中应该用引号;
    2、此题关键就是写executeSql函数,要点你已经写出来了,一点点具体实现即可。
    参考代码如下:
    // 定义根目录
    define('__ROOT__', dirname(__FILE__));// 定义数据库参数
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASS', 'root');
    define('DB_NAME', 'test');
    define('DB_PORT', '3306');// 测试 4.1 取会员
    $member = executeSql("getMember", array("member_id", "M0001"));
    print_r($member);// 测试 4.2 搜索会员
    $members = executeSql("getMemberSearch", array("name", "ss"));
    print_r($members);// ****************************************************
    // 函数定义
    function executeSql($sqlName, $paras){
    // 读sql配置,根据$sqlName取对应的sql
    $configFile = __ROOT__ . '/sqlconfig.json';
    $config = json_decode(file_get_contents($configFile), true);
    $sql = $config[$sqlName]; // 处理sql,处理参数
    $sql = str_replace('@' . $paras[0], $paras[1], $sql); // 执行
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
    if ($mysqli->connect_errno) {
    exit(print $mysqli->connect_error);
    } if(false === ($result = $mysqli->query($sql))) {
    exit(print $mysqli->error);
    } // 返回结果
    return $result->fetch_all(MYSQLI_ASSOC);
    }
      

  3.   

    非常感谢!开始入门php了
      

  4.   

    嗯嗯 总算有人指路了学前端也要学php啊