脚本宝典收集整理的这篇文章主要介绍了在非对象PHP帮助上调用成员函数prepare(),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$DBH = new MysqLi("host","test","123456","dbname"); function selectInfo($limIT,$offset){ $stmt = $DBH->prepare("SELECT * From information LIMIT ?,?"); $stmt->bind_param("ii",$limit,$offset); $stmt->execute(); } selectInfo();
1.使用全局关键字
function DOSomething() { global $DBH; //...
这不是一个好主意,因为它使维护和测试成为一个PITA.想象一下,尝试调试该函数调用.你现在需要去找出$DBH被定义在哪里,试图弄清楚发生了什么事情
function doSomething(MysqLi $DBH) {
它具有明确的优点.但是,由于调用代码需要跟踪全局变量,所以仍然不太好.
function getDBH() { static $DBH = null; if (is_null($DBH)) { $DBH = new MysqLi(...); } return $DBH; } function doSomething() { $DBH = getDBH(); }
这具有完全摆脱全局变量问题的优点.但是,也难以拥有多个连接或重新使用其他连接的任何代码.
class Database { public function __construct($host,$user,$pass) { $this->DBH = new MysqLi($host,$pass); } public function doSOmething() { $this->DBH->foo(); } }
这封装了你的一切.所有数据库访问将通过一个类,所以您不需要担心全局变量访问或其他任何事情.
5.使用预构建的类/框架
这是最好的选择,因为你不需要担心自己做.
数据库访问类:
> A quick google search to get you started
> Doctrine ORM – 具有完整ORM(对象映射)的完整数据库访问库
> ADODB – 数据库不可知数据库访问库
> Pear MDB2 – 另一个数据库访问库
完整框架:
> Zend Framework
> Lithium Framework
> Code Igniter
(真的有很多,我不会打扰上市,因为这是另一个问题在一起…)
真的,选择是无止境的.找到你喜欢的东西,并坚持下去.真的会让你的生活更轻松
祝你好运!
以上是脚本宝典为你收集整理的在非对象PHP帮助上调用成员函数prepare()全部内容,希望文章能够帮你解决在非对象PHP帮助上调用成员函数prepare()所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。