我正在寻找一个在PHP5中扩展mySQLi类的类的简单但功能性示例的示例。我也对存储过程感兴趣。基本上我需要的是一个实用且可用的类的例子。我通过示例学到了最好的东西,不幸的是我找不到任何似乎有一个非常简单的例子的网站或书籍。我看到的所有示例都是复杂的方式,所以我无法理解或者它们非常简单,以至于我可能只是在那时实例化该类并在那里进行内联。如果有人可以为我提供这样的例子并解释他们能做到的最新情况会很棒。我的长期目标是建立一个可以实例化的类来处理数据库的身份验证,然后获取我的SQL语句并在变量中提供输出。
如果有人愿意花时间帮助我,我将不胜感激! ,由于
答案 0 :(得分:1)
您检查过PHP PEAR MDB2
了吗?
http://pear.php.net/package/MDB2
它不是那么简单,它是php IMHO中最好的DAL ......
答案 1 :(得分:1)
关于mysqli,您可以查看这些文章:
(很老了,但mysqli扩展在几年内没有那么大的改变,所以那些应该还可以)
您还可以查看自版本5.1以来PHP中包含的PDO;它是一个面向对象的API来访问多个数据库引擎(你不使用mysqli_query,pg_query,oci8_query或类似的东西;只有$ pdo->查询 - 好吧,你的SQL必须兼容,但这是另一个问题; - ()
另一种方法是使用ORM,例如Doctrine。
这不是一个扩展MySQLi的类,而是一个抽象数据库引擎的完整框架 - 用它编写一个模式来描述数据库的结构,然后使用“伪SQL”语言发送查询;或者只是(对于大多数情况下)抽象SQL的面向对象的API。
起初使用起来有点困难,但非常强大且有用(对于许多类型的项目,我认为对生产力而言并不差)
答案 2 :(得分:1)
试试DALMP:http://code.google.com/p/dalmp/是支持预备语句和许多缓存后端
答案 3 :(得分:0)
有点偏离主题,但为什么MySQLi? PDO要好得多,并且最近被认为是事实上的PHP标准。我在一两年前写过一个简单的PDO课程,如果有兴趣,我可以给你链接。
答案 4 :(得分:0)
这是一个向mysqli类添加内置查询时序的简单示例。
这假设您已经定义了一个实现iTimer接口的“MyTimer”类。 iTimer类,以最简单的形式,将记录指定$ key的开始和停止时间(使用microtime()或getrusage()或其他)。
<?php
interface iTimer
{
public function start($key);
public function stop($key);
}
class mysqlp extends mysqli
{
function query($query, $resultmode)
{
$timer = MyTimer::getInstance();
$timer->start('mysqli::query');
$result = parent::query($query, $resultmode);
$timer->stop('mysqli::query');
return $result;
}
}
#usage
$mysqli = new mysqlp("localhost", "my_user", "my_password", "world");
$results = $mysqli->query("SELECT id FROM foo");