php 零散记录

目录

 

apache ssi_modul 开启

public provite protect区别

isset,empty区别

跨域请求头设置

 json格式数据转换

php报错级别设置

session销毁步骤

php单箭头

多表联合查询

过滤用户输入,防止sql注入

mysql优化小细节


apache ssi_modul 开启

server side include,即服务器文件包含,.shtml格式的文件可以使用如下代码引入:

<!--#include file="comm.shtml"-->     //引用绝对路径的文件
<!--#include virtual="comm.shtml"-->  //引用相对路径的文件
  1. 打开apache httpd.conf文件,搜索mod_include将那一行注释放开。
  2. 全局搜索text/html,将搜索到的这行与下一行注释放开。
  3. 重启apache,就可以使用include语法载入文件。

 

public provite protect区别

  1. public表示公有的,类的内部、外部、子类都可以调用。
  2. private表示私有的,只有类的内部可以调用。
  3. 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";//优化后

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值