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配置文件,有大神帮忙解答么
数据库操作类需求(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、你的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);
}