自己一直在学习PHP开发,前一段时间在51cto上看到私房库孙胜利老师的视频,下载了他的小清新BBS系统开发视频学习。现在把里面的好的运用收集到这儿。
在看了这套视频后先了解整个web项目开发的过程。
公共配置参数:
<?php
date_default_timezone_set('Asia/Shanghai');//设置时区
session_start();
header('Content-type:text/html;charset=utf-8');
if(version_compare(PHP_VERSION,'5.4.0')<0){
exit('您的PHP版本为'.PHP_VERSION.',我们的程序要求是PHP版本不低于5.4.0!');
}
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASSWORD','2015');
define('DB_DATABASE','sfkbbs');
define('DB_PORT',3306);
//我们的项目(程序),在服务器上的绝对路径
define('SA_PATH',dirname(dirname(__FILE__)));
//我们的项目在web根目录下面的位置(哪个目录里面)
define('SUB_URL',str_replace($_SERVER['DOCUMENT_ROOT'],'',str_replace('\\','/',SA_PATH)).'/');
if(!file_exists(SA_PATH.'/inc/install.lock')){
header('Location:'.SUB_URL.'install.php');
}
?>
mysqli操作数据库的公用库:
<?php
//数据库连接
function connect($host=DB_HOST,$user=DB_USER,$password=DB_PASSWORD,$database=DB_DATABASE,$port=DB_PORT){
$link=@mysqli_connect($host, $user, $password, $database, $port);
if(mysqli_connect_errno()){
exit(mysqli_connect_error());
}
mysqli_set_charset($link,'utf8');
return $link;
}
//执行一条SQL语句,返回结果集对象或者返回布尔值
function execute($link,$query){
$result=mysqli_query($link,$query);
if(mysqli_errno($link)){
exit(mysqli_error($link));
}
return $result;
}
//执行一条SQL语句,只会返回布尔值
function execute_bool($link,$query){
$bool=mysqli_real_query($link,$query);
if(mysqli_errno($link)){
exit(mysqli_error($link));
}
return $bool;
}
//一次性执行多条SQL语句
/*
一次性执行多条SQL语句
$link:连接
$arr_sqls:数组形式的多条sql语句
$error:传入一个变量,里面会存储语句执行的错误信息
使用案例:
$arr_sqls=array(
'select * from sfk_father_module',
'select * from sfk_father_module',
'select * from sfk_father_module',
'select * from sfk_father_module'
);
var_dump(execute_multi($link, $arr_sqls,$error));
echo $error;
*/
function execute_multi($link,$arr_sqls,&$error){
$sqls=implode(';',$arr_sqls).';';
if(mysqli_multi_query($link,$sqls)){
$data=array();
$i=0;//计数
do {
if($result=mysqli_store_result($link)){
$data[$i]=mysqli_fetch_all($result);
mysqli_free_result($result);
}else{
$data[$i]=null;
}
$i++;
if(!mysqli_more_results($link)) break;
}while (mysqli_next_result($link));
if($i==count($arr_sqls)){
return $data;
}else{
$error="sql语句执行失败:<br /> 数组下标为{$i}的语句:{$arr_sqls[$i]}执行错误<br /> 错误原因:".mysqli_error($link);
return false;
}
}else{
$error='执行失败!请检查首条语句是否正确!<br />可能的错误原因:'.mysqli_error($link);
return false;
}
}
//获取记录数
function num($link,$sql_count){
$result=execute($link,$sql_count);
$count=mysqli_fetch_row($result);
return $count[0];
}
//数据入库之前进行转义,确保,数据能够顺利的入库
function escape($link,$data){
if(is_string($data)){
return mysqli_real_escape_string($link,$data);
}
if(is_array($data)){
foreach ($data as $key=>$val){
$data[$key]=escape($link,$val);
}
}
return $data;
//mysqli_real_escape_string($link,$data);
}
//关闭与数据库的连接
function close($link){
mysqli_close($link);
}
?>