目录
apache ssi_modul 开启
server side include,即服务器文件包含,.shtml格式的文件可以使用如下代码引入:
<!--#include file="comm.shtml"--> //引用绝对路径的文件
<!--#include virtual="comm.shtml"--> //引用相对路径的文件
-
打开apache httpd.conf文件,搜索mod_include将那一行注释放开。
-
全局搜索text/html,将搜索到的这行与下一行注释放开。
-
重启apache,就可以使用include语法载入文件。
public provite protect区别
-
public表示公有的,类的内部、外部、子类都可以调用。
-
private表示私有的,只有类的内部可以调用。
-
protected表示受保护的,表示只有类的内部、子类、父类可以调用。
isset,empty区别
isset();变量是否设置empty();变量是否为空,区别在于当变量设置为0,empty(),会返回false,而isset()只要设置就会返回true,所以谨慎使用。
跨域请求头设置
header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *')
json格式数据转换
json_encode()//转换为json格式数据,如果包含汉字,会转化为unicode码
json_decode(jsonStr,true)//将json格式数据转化为php变量,如果第二个参数为true,会将对象拆解为数组形式
//类似于js中的JSON.parse与JSON.stringfy
php报错级别设置
通过修改php.ini文件使notice级别不报错
error_reporting = E_ALL //开始是这样的
error_reporting = E_ALL & -E_NOTICE //修改后
session销毁步骤
session_start();
$_SESSION = array();
if(isset($_COOKIE[session_name()])){
setcookie(session_name,'',time()-3600,'/');
};
session_destroy();
php单箭头
可以理解为js中的左边是一个对象,右边是对象的属性或方法。
多表联合查询
public function get_goods($where='',$type=2) {
$sql = 'select
a.*,
b.iniqty,
b.iniunitCost,
b.iniamount,
b.totalqty,
c.url
from '.GOODS.' as a
left join
(select
invId,
sum(qty) as totalqty,
sum(case when billType="INI" then qty else 0 end) as iniqty,
sum(case when billType="INI" then price else 0 end) as iniunitCost,
sum(case when billType="INI" then amount else 0 end) as iniamount
from '.INVOICE_INFO.'
where (isDelete=0)
group by invId) as b
on a.id=b.invId
left join(select invId,url
from '.GOODS_IMG.' where (isDelete = 0)) as c
on a.id=c.invId
where
(a.isDelete=0) '.$where;
return $this->mysql_model->query(GOODS,$sql,$type);
}
goods表通过id与invoice_info的invid连接,联合查询然后按照invid进行分组,然后通过goods表的id与img表的invid连接,
查回图片路径。
过滤用户输入,防止sql注入
function str_enhtml($str) {
if (!is_array($str)) return addslashes(htmlspecialchars(trim($str)));
foreach ($str as $key=>$val) {
$str[$key] = str_enhtml($val);
}
return $str;
}
具体用法为:$result = str_enhtml($this->input->post('username'));
mysql优化小细节
$sql = "select * from tbmessage_manager where _id = (select max(_id) from tbmessage_manager)";//优化前
$sql = "select * from tbmessage_manager order by _id desc limit 0,1";//优化后