kovsky0/pdo-wrapper

此包的最新版本(dev-master)没有提供许可证信息。

简单的PDO包装器 - 一组用于数据库操作的crud方法,包括选择、插入、更新和删除记录。

dev-master 2017-09-13 16:36 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:10:21 UTC


README

此PDO包装器是一组用于数据库操作的crud方法,包括选择、插入、更新和删除记录。

安装

要安装,请将此类放入项目文件夹中,并包含该类,然后设置数据库凭据。最后,通过调用其get方法创建类的实例。

此包装器使用单个数据库连接,进一步连接尝试将重用已打开的连接(如果尚未连接)。

include('database.php');

//db properties
define('DB_TYPE','mysql');
define('DB_HOST','localhost');
define('DB_USER','username');
define('DB_PASS','password');
define('DB_NAME','database name');

// make a connection to mysql here
$db = Database::get();

要连接到另一个数据库,请传递包含以下内容的数组

$db = Database::get(array(
	'type' => 'mysql',
	'host' => 'localhost',
	'name' => 'dbname',
	'user' => 'dbusername'
	'pass' => 'password'
));

使用示例

选择

$db->select("column FROM table");

要基于用户数据而不是直接传递数据到查询中选择数据,请使用预处理语句,这更安全,并阻止任何SQL注入尝试。

$db->select("username FROM members WHERE memberID = :id and email = :email", array(':id' => 1, ':email' => 'someone@domain.com'));

上述查询将返回成员表中memberID和email匹配的用户名。memberID和email单独在数组中传递。

而不是直接传递id和email到查询中,使用占位符:id和:email,然后传递一个数组,数组的键与占位符匹配并绑定,因此数据库将同时获取查询和绑定数据。

查询返回的数据将作为对象返回,可以通过传递包含PDO::FETCH_ASSOC的第三个参数来更改。

要使用对象,请遍历它,一个典型的示例

$rows = $db->select("firstName, lastName FROM members ORDER BY firstName, lastName");
foreach ($rows as $row) {
    echo "<p>$row->firstName $row->lastName</p>";
}

原始查询

原始查询是未经预处理语句运行的查询,将直接执行传入的查询。当创建表时很有用。

$db->raw("CREATE TABLE IF NOT EXISTS members (
  memberID INT(11) NOT NULL AUTO_INCREMENT,
  firstName VARCHAR(255) NOT NULL,
  lastnName VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  PRIMARY KEY (memberID))"
);

插入

通过调用insert方法插入数据,它期望表名后跟一个包含要插入到数据库中的键值对的数组。

$data = array(
    'firstName' => 'Joe',
    'lastnName' => 'Smith',
    'email' => 'someone@domain.com'
);
$db->insert('members', $data);

插入自动返回最后插入的ID,通过返回'lastInsertId'来收集ID

$id = $db->insert('members', $data);

更新

要更新现有记录,请调用update方法。此方法期望表、要更新的数据数组以及包含where条件的第二个数组。

$data = array(
    'firstName' => 'Joe',
    'lastnName' => 'Smith',
    'email' => 'someone@domain.com'
);
$where = array('memberID' => 2);
$db->update('members', $data, $where);

删除

要删除记录,请调用delete方法。此方法期望表名和包含where条件的数组。

$where = array('memberID' => 2);
$db->delect('members', $where);

这将删除单个记录,要设置限制,请传递一个包含要限制的数字的第三个参数,或要移除限制,请传递null作为第三个参数。

$db->delete('members', $where, 10);  //delete 10 records matcing the where
$db->delete('members', $where, null); //delete all records matching the where

## Truncate

To empty a table of all contents call the truncate method. Passing only the table name.

````php
$db->truncate('members');