ruckbeard/database

PHP MySQLi 数据库库

v0.2.3 2015-03-12 08:21 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:12:36 UTC


README

这是一个用于连接 MySQL 数据库、构造查询和运行查询的 PHP 类。类似于 CodeIgniter 的数据库类。

查询函数

query

这将运行一个简单的查询,返回一个查询对象,如果返回任何行,则可以使用该对象获取结果。

$db = new Database;

$query = $db->query("SELECT * FROM table");

get

get 函数接受一个可选参数,该参数是查询 FROM 部分的表。当设置此参数且在它之前未调用查询构造函数时,它会运行一个基本查询,选择表中的所有行。get 函数还可以用于运行由查询构造函数构建的查询,如第三个示例所示。

$db = new Database;

$query = $db->get("table");

这将创建一个查询 "SELECT * FROM table" 并在数据库上运行它

$db = new Database;

$db->select("*")->from("table")->where("id","5","=");
$query = $db->get();

这将创建一个查询 "SELECT * FROM table WHERE id = 5" 并在数据库上运行它

查询结果

查询结果对象包含在数据库上运行的查询的结果。它作为对象访问。

result

result 函数返回查询的所有结果。所有结果都可以通过使用 foreach 循环来访问。

$db = new Database;

$query = $db->query("SELECT * FROM table");

foreach ($query->result() as $row) { $row->id; $row->name; $row->date; }

$db = new Database;

$query = $db->get("table");

foreach ($query->result() as $row) {
  $row->id;
  $row->name;
  $row->date;
}

row

row 函数返回查询结果中的一行。如果没有参数,它将返回结果的第一行。您可以添加参数来选择您想要的行。

;
$db = new Database;

$query = $db->query("SELECT * FROM table"); $row = $query->row(); $row->id; $row->name; $row->date;

$db = new Database;

$query = $db->query("SELECT * FROM table"); $row = $query->row(5); $row->id; $row->name; $row->date;

查询构造函数

查询构造函数是一组可以在使用 get() 函数之前调用的函数,用于在不手动编写查询字符串的情况下编写查询的各个部分。通过使用此方法自动转义信息。这些函数可以串联在一起,从而简化语法并提高可读性。

select

select 函数写入查询的 SELECT 部分。

$db = new Database;

$db->select("*"); $query = $db->get("table");

这将创建并运行查询字符串 "SELECT * FROM table"。

$db = new Database;

$db->select("foo,bar");
$query = $db->get("table");

这将创建并运行查询字符串 "SELECT foo,bar FROM table"。

$db = new Database;

$db->select("SELECT id");
$query = $db->get("table");

这将创建并运行查询字符串 "SELECT id FROM table"。

select_max

select_max 函数写入查询的 SELECT MAX(field) 部分。接受两个参数。第一个是选择的字段,第二个是重命名结果字段

$db = new Database;

$db->select_max("foo","bar"); $query = $db->get("table");

这将创建并运行查询字符串 "SELECT MAX(foo) as bar FROM table"。

$db = new Database;

$db->select_max("foo");
$query = $db->get("table");

这将创建并运行查询字符串 "SELECT MAX(foo) as foo FROM table"。

select_min

select_min 函数写入查询的 SELECT MIN(field) 部分。接受两个参数。第一个是选择的字段,第二个是重命名结果字段

$db = new Database;

$db->select_min("foo","bar"); $query = $db->get("table");

这将创建并运行查询字符串 "SELECT MIN(foo) as bar FROM table"。

$db = new Database;

$db->select_min("foo");
$query = $db->get("table");

这将创建并运行查询字符串 "SELECT MIN(foo) as foo FROM table"。

select_avg

select_avg 函数写入查询的 SELECT AVG(field) 部分。接受两个参数。第一个是选择的字段,第二个是重命名结果字段

$db = new Database;

$db->select_avg("foo","bar"); $query = $db->get("table");

这将创建并运行查询字符串 "SELECT AVG(foo) as bar FROM table"。

$db = new Database;

$db->select_avg("foo");
$query = $db->get("table");

这将创建并运行查询字符串 "SELECT AVG(foo) as foo FROM table"。

select_sum

选择求和函数写入查询的 SELECT SUM(字段) 部分。接受两个参数。第一个是选择字段,第二个是对结果字段进行重命名。

$db = new Database;

$db->select_sum("foo","bar"); $query = $db->get("table");

这将创建并运行查询字符串 "SELECT SUM(foo) as bar FROM table"。

$db = new Database;

$db->select_sum("foo");
$query = $db->get("table");

这将创建并运行查询字符串 "SELECT SUM(foo) as foo FROM table"。

from

from 函数将写入查询字符串的 FROM 部分。

$db = new Database;

$db->from("table"); $query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table"。

$db = new Database;

$db->select("foo");
$db->from("table");
$query = $db->get();

这将创建并运行查询字符串 "SELECT foo FROM table"。

join

join 函数将写入查询字符串的 JOIN 部分。它接受三个参数。第一个参数是要连接的表。第二个参数包含用于通过查询连接的外键。第三个参数是可选的。它设置 JOIN 类型,如左连接、右连接或内连接。

$db = new Database;

$db->select("table., table2.name"); $db->join("table2", "table.id = table2.id", "inner"); $query = $db->get("table");

这将创建并运行查询字符串 "SELECT table., table2.name FROM table INNER JOIN table2 ON table.id = table2.id"。

where

where 函数将写入查询字符串的 WHERE 部分。该函数接受三个参数。第一个参数可以以三种方式编写。可以是字段本身,也可以是字段和运算符。也可以是字段、运算符和在字段中要查找的数据。第二个参数是可选的,如果第一个参数设置为字段和可选运算符,则应设置该参数。第二个参数是要在字段中搜索的数据。第三个选项可以设置运算符,如果第一个参数中没有设置。第三个参数的默认值是 "="。第一个参数也可以是一个数组,以 AND 连接。该函数也可以多次调用以 AND 连接。

$db = new Database;

$db->select("*"); $db->from("table"); $db->where("id = 1"); $query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table WHERE id = '1'"。

$db = new Database;

$db->select("*");
$db->from("table");
$db->where("id =", "1");
$query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table WHERE id = '1'"。

$db = new Database;

$db->select("*");
$db->from("table");
$db->where("id", "1");
$query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table WHERE id = '1'"。

$db = new Database;

$db->select("*");
$db->from("table");
$db->where("id","1","=");
$query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table WHERE id = '1'"。

$db = new Database;

$db->select("*");
$db->from("table");
$db->where("id", "1");
$db->where("name", "bob");
$query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table WHERE id = '1' AND name = 'bob'"。

or_where

where_or 函数将写入查询字符串的 WHERE 部分。该函数接受三个参数。第一个参数可以以三种方式编写。可以是字段本身,也可以是字段和运算符。也可以是字段、运算符和在字段中要查找的数据。第二个参数是可选的,如果第一个参数设置为字段和可选运算符,则应设置该参数。第二个参数是要在字段中搜索的数据。第三个选项可以设置运算符,如果第一个参数中没有设置。第三个参数的默认值是 "="。第一个参数也可以是一个数组,以 OR 连接。该函数也可以多次调用以 OR 连接。

$db = new Database;

$db->select("*"); $db->from("table"); $db->where("id", "1"); $db->where("name", "bob"); $db->where_or("name", "ted"); $query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table WHERE id = '1' AND name = 'bob' OR name = 'ted'"。

group_by

group_by 函数将写入查询字符串的 GROUP BY 部分。该函数接受一个参数,可以是要按其分组值组成的字符串,也可以是包含多个值的数组。

$db = new Database;

$db->select("*"); $db->from("table"); $db->group_by("title, date"); $query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table GROUP BY title, date"。

$db = new Database;

$db->select("*");
$db->from("table");
$db->group_by(array("title","date"));
$query = $db->get();

这将创建并运行查询字符串 "SELECT * FROM table GROUP BY title, date"。

distinct

distinct 函数允许你在查询字符串的 SELECT 部分添加 DISTINCT。

$db = new Database;

$db->distinct(); $query = $db->get("table");

这将创建并运行查询字符串 "SELECT DISTINCT * FROM table"。

having

“having”函数将写入查询字符串的HAVING部分。该函数接受三个参数。第一个参数可以以三种不同的方式书写。它可以只包含字段,或者字段和运算符。也可以包含字段、运算符以及要查找的字段中的数据。第二个参数是可选的,如果第一个参数被设置为只包含字段和可选运算符,则应设置此参数。第二个参数是要在字段中搜索的数据。第三个选项可以设置运算符,如果第一个参数中未设置。第三个参数的默认值是“=”。第一个参数也可以是一个数组,以使用AND进行链接。该函数也可以多次调用以使用AND进行链接。

$db = new Database;

$db->select("*"); $db->from("table"); $db->having("id = 1"); $query = $db->get();

这将创建并运行查询字符串“SELECT * FROM table HAVING id = '1'”。

$db = new Database;

$db->select("*");
$db->from("table");
$db->having("id =", "1");
$query = $db->get();

这将创建并运行查询字符串“SELECT * FROM table HAVING id = '1'”。

$db = new Database;

$db->select("*");
$db->from("table");
$db->having("id", "1");
$query = $db->get();

这将创建并运行查询字符串“SELECT * FROM table HAVING id = '1'”。

$db = new Database;

$db->select("*");
$db->from("table");
$db->having("id","1","=");
$query = $db->get();

这将创建并运行查询字符串“SELECT * FROM table HAVING id = '1'”。

$db = new Database;

$db->select("*");
$db->from("table");
$db->having("id", "1");
$db->having("name", "bob");
$query = $db->get();

这将创建并运行查询字符串“SELECT * FROM table HAVING id = '1' AND name = 'bob'”。

or_having

“having_or”函数将写入查询字符串的HAVING部分。该函数接受三个参数。第一个参数可以以三种不同的方式书写。它可以只包含字段,或者字段和运算符。也可以包含字段、运算符以及要查找的字段中的数据。第二个参数是可选的,如果第一个参数被设置为只包含字段和可选运算符,则应设置此参数。第二个参数是要在字段中搜索的数据。第三个选项可以设置运算符,如果第一个参数中未设置。第三个参数的默认值是“=”。第一个参数也可以是一个数组,以使用OR进行链接。该函数也可以多次调用以使用OR进行链接。

$db = new Database;

$db->select("*"); $db->from("table"); $db->having("id", "1"); $db->having("name", "bob"); $db->having_or("name", "ted"); $query = $db->get();

这将创建并运行查询字符串“SELECT * FROM table HAVING id = '1' AND name = 'bob' OR name = 'ted'”。

order_by

“order_by”函数允许您编写查询的ORDER BY部分。该函数接受两个参数。第一个是排序的字段。第二个是结果的排序方向,即asc、desc或random。该函数可以多次调用以对多个字段进行排序。

$db = new Database;

$db->order_by("id","desc"); $query = $db->get("table");

这将创建并运行查询字符串“SELECT * FROM table ORDER BY id DESC”。

$db = new Database;

$db->order_by("id","desc");
$db->order_by("name","asc");
$query = $db->get("table");

这将创建并运行查询字符串“SELECT * FROM table ORDER BY id DESC, name ASC”。

limit

“limit”函数允许您编写查询的LIMIT部分。该函数接受两个参数。第一个是要限制查询的数量。第二个是可选的偏移量。

$db = new Database;

$db->limit(10); $query = $db->get("table");

这将创建并运行查询字符串“SELECT * FROM table LIMIT 10”。

$db = new Database;

$db->limit(10,20);
$query = $db->get("table");

这将创建并运行查询字符串“SELECT * FROM table LIMIT 20, 10”。

链式构造函数

查询构造函数可以链接在一起以简化语法并提高可读性。

$db = new Database;

$db->select("*")->from("table")->where("id","1","!=")->order_by("id","asc"); $query = $db->get();

这将创建并运行查询字符串“SELECT * FROM table WHERE id != 1 ORDER BY id ASC”。

插入

“insert”函数可用于创建和运行插入查询。它接受的第一个参数是表,第二个参数是要插入到查询字符串中的数据。数据可以存储在数组或对象中。第二个参数是可选的。数据可以通过使用set()函数设置。

$db = new Database;

$data = array( field_1 => "foo", field_2 => "bar", field_3 => "foobar" )

$db->insert("table",$data);

这将创建并运行查询“INSERT INTO table (field_1,field_2,field_3) VALUES ('foo','bar','foobar')”。

$db = new Database;

$data = array(
  array (
    field_1 => "foo1",
    field_2 => "bar2",
    field_3 => "foobar3"
  ),
  array (
    field_1 => "foo4",
    field_2 => "bar5",
    field_3 => "foobar6"
  )
)

$db->insert("table",$data);

这将创建并运行查询“INSERT INTO table (field_1,field_2,field_3) VALUES ('foo1','bar2','foobar3'),('foo4','bar5','foobar6')”。

更新

“update”函数将创建并运行一个UPDATE查询。第一个参数是表。第二个参数是写入查询字符串中的数据。第三个参数写入查询字符串的WHERE部分。第二个和第三个参数是可选的。数据可以通过使用set()函数设置,WHERE部分可以通过使用where()函数设置。

$data = array(
  field_1 => "foo",
  field_2 => "bar",
  field_3 => "foobar"
)

$db->update("table",$data,"id = 1");

这将创建并运行查询字符串“UPDATE table SET field_1 = 'foo', field_2 = 'bar', field_3 = 'foobar' WHERE id = 1”。

$data = array(
  field_1 => "foo",
  field_2 => "bar",
  field_3 => "foobar"
)

$db->where("id","1");
$db->update("table",$data);

这将创建并运行查询字符串“UPDATE table SET field_1 = 'foo', field_2 = 'bar', field_3 = 'foobar' WHERE id = 1”。

设置

设置函数可以用于设置 INSERT 或 UPDATE 查询字符串的数据。它可以多次调用,以使用数据设置多个字段。

$db = new Database;

$db->set("field_1", "foo"); $db->set("field_2", "bar"); $db->set("field_3", "foobar"); $db->insert("table");

$db = new Database;

$db->set("field_1", "foo");
$db->set("field_2", "bar");
$db->set("field_3", "foobar");
$db->where("id","1");
$db->update("table");

删除

可以调用删除函数来创建和运行 DELETE 查询字符串。第一个和第二个参数是可选的。第一个参数是要删除的表,第二个参数写入查询字符串的 WHERE 部分。这些也可以通过使用 from() 和 where() 函数来设置。

$db = new Database;

$db->from("table")->where("id","1"); $db->delete();

$db = new Database;

$db->delete("table", "id = 1");