高质量PHP代码的50个实用技巧必备(下)
发布时间:2020-12-12 21:18:49 所属栏目:PHP教程 来源:网络整理
导读:接着上篇继续研究。 26. 避免直接写SQL,抽象之 不厌其烦的写了太多如下的语句: query($query); //call to mysqli_query() 这不是个建壮的方案. 它有些缺点: >>每次都手动转义值 >>验证查询是否正确 >>查询的错误会花很长时间识别(除非每次都用if-else检查) >
接着上篇继续研究。 26. 避免直接写SQL,抽象之不厌其烦的写了太多如下的语句:query($query); //call to mysqli_query()
这不是个建壮的方案. 它有些缺点:
因此使用函数封装: $value)
{
//mysqli_real_escape_string
$data[$key] = $db->mres($value);
}
$fields = implode(',',array_keys($data));
$values = "'" . implode("','",array_values($data)) . "'";
//Final query
$query = "INSERT INTO {$table}($fields) VALUES($values)";
return $db->query($query);
}
$data = array('name' => $name,'email' => $email,'address' => $address,'phone' => $phone);
insert_record('users',$data);
看到了吗? 这样会更易读和扩展. record_data 函数小心的处理了转义。最大的优点是数据被预处理为一个数组,任何语法错误都会被捕获。该函数应该定义在某个database类中,你可以像 $db->insert_record这样调用。查看本文,看看怎样让你处理数据库更容易。类似的也可以编写update,select,delete方法. 试试吧. 27. 將数据库生成的内容缓存到静态文件中如果所有的内容都是从数据库获取的,它们应该被缓存. 一旦生成了,就將它们保存在临时文件中. 下次请求该页面时,可直接从缓存中取,不用再查数据库. 好处: >>节约php处理页面的时间,执行更快 >>更少的数据库查询意味着更少的mysql连接开销28. 在数据库中保存session基于文件的session策略会有很多限制. 使用基于文件的session不能扩展到集群中,因为session保存在单个服务器中. 但数据库可被多个服务器访问,这样就可以解决问题. 在数据库中保存session数据,还有更多好处: >>处理username重复登录问题. 同个username不能在两个地方同时登录. >>能更准备的查询在线用户状态.29. 避免使用全局变量
30. 在head中使用base标签没听说过? 请看下面:![]() |