“Mnemi”的版本间的差异
(→Class DB) |
(→Class DB) |
||
第35行: | 第35行: | ||
int '''count'''(string $table, string $col, [string $condition]): 运行SELECT COUNT($col) FROM $table [WHERE $condition],返回符合条件的记录的个数(可能为0)。当执行出错时返回FALSE。 | int '''count'''(string $table, string $col, [string $condition]): 运行SELECT COUNT($col) FROM $table [WHERE $condition],返回符合条件的记录的个数(可能为0)。当执行出错时返回FALSE。 | ||
− | + | bool '''insert'''(string $table, array $row[col => value]): 将$row所包含的数据插入$table。$row是一个数组,含有col=>value结对的数据。如['id' => '0031', 'name' => 'Tom']。如果操作成功则返回TRUE,否则返回FALSE。 | |
bool '''update'''(string $table, array $values[col => value], string $condition): 按照$condition所指定的条件对$table执行UPDATE操作。$values的每个元素都是col=>value结对的数据。如果操作成功则返回TRUE,否则返回FALSE。鉴于此函数的大规模破坏潜能,$condition是必需参数(可使用'TRUE'来明确指明“是的,我要改变所有的行”)。 | bool '''update'''(string $table, array $values[col => value], string $condition): 按照$condition所指定的条件对$table执行UPDATE操作。$values的每个元素都是col=>value结对的数据。如果操作成功则返回TRUE,否则返回FALSE。鉴于此函数的大规模破坏潜能,$condition是必需参数(可使用'TRUE'来明确指明“是的,我要改变所有的行”)。 |
2013年12月22日 (日) 05:09的最新版本
Classes
Class DB
初始化(以下两种调用是等价的):
$dbvar = new DB("dbname");
$dbvar = new DB();
$dbvar->usedb("dbname");
public $err: 存储刚刚失败的数据库操作错误信息。如果刚刚的数据库操作是成功的,则err被重置为空字符串。当此字符串不为空时,它的格式是,一个短代码(如DBOPERR),后面跟一个空格,后面再跟mysqli类库的error成员字符串内容(易于理解的文本)。
bool open([string $db]): 连通Mnemi数据库服务器,并(如果$db为非空字符串)使用$db所指定的数据库。如果连接成功则返回TRUE,否则返回FALSE。此函数也被DB类的构造函数所调用。
bool usedb(string $db): 使用$db所指定的数据库,即以后的操作默认在此数据库执行。如果函数成功则返回TRUE,否则返回FALSE。
mixed run(string $sql): 运行SQL命令。如果函数执行不成功,则返回FALSE。如果SQL语句为空,则不做任何操作并返回TRUE。如果SQL语句为不期待返回数据的命令,且执行成功,则返回TRUE。如果SQL语句有数据结果(如SELECT语句),则返回值为一个数组(array),数组的第一维是行,第二维是列。数据可以按照列名索引,也可以按照列号索引。就是说,如果调用
$result = $dbinstance->run('SELECT id,name FROM school WHERE age > 20');
返回
id | name |
---|---|
0031 | Tom |
0045 | Mike |
则$result[1][1]或$result[1][name]都可以得到Mike。
mixed get(string $table, string $cols, [string $condition]): 运行SELECT $cols FROM $table [WHERE $condition],返回如run成员函数所描述的数据数组(可能为二维空数组)。$table、$cols、$condition都可以是很复杂的字符串,只要组成的SELECT语句合法即可。当运行出错时返回FALSE。注意:当无条件返回所有行的数据、却希望对结果有所处理(如排序),不能调用$dbinstance->get('table', 'id,name', 'oRDER BY id'),因为这样会形成“WHERE ORDER BY id”这样的非法SQL语句。解决方法是把$condition写为'TRUE ORDER BY id'。
int count(string $table, string $col, [string $condition]): 运行SELECT COUNT($col) FROM $table [WHERE $condition],返回符合条件的记录的个数(可能为0)。当执行出错时返回FALSE。
bool insert(string $table, array $row[col => value]): 将$row所包含的数据插入$table。$row是一个数组,含有col=>value结对的数据。如['id' => '0031', 'name' => 'Tom']。如果操作成功则返回TRUE,否则返回FALSE。
bool update(string $table, array $values[col => value], string $condition): 按照$condition所指定的条件对$table执行UPDATE操作。$values的每个元素都是col=>value结对的数据。如果操作成功则返回TRUE,否则返回FALSE。鉴于此函数的大规模破坏潜能,$condition是必需参数(可使用'TRUE'来明确指明“是的,我要改变所有的行”)。
bool delete(string $table, string $condition): 按照$condition所指定的条件对$table执行DELETE操作。操作成功返回TRUE,否则返回FALSE。鉴于此函数的大规模破坏潜能,$condition是必需参数(可使用'TRUE'来明确指明“是的,我要删除所有的行”)。
bool lock(string $tblread, string $tblwrite): 对$tblread指明的表格上读锁,对$tblwrite指明的表格上写锁。如果操作成功则返回TRUE,否则返回FALSE。
bool unlock(): 释放此例程所上的所有锁。如果成功则返回TRUE,否则返回FALSE。
void close(): 释放所有的锁,断开数据库连接,重置所有成员数据。此函数也被DB类的析构函数所调用。