“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。
  
int '''insert'''(string $table, array $values[][col => value], [bool $stop_on_failure = TRUE]): 将$values所包含的数据插入$table。$values是一个二维数组,第一维是行,第二维是col=>value结对的数据。如[ ['id' => '0031', 'name' => 'Tom'], ['id' => '0045', 'name' => 'Mike'] ]。如果$stop_on_failure为TRUE(默认),则一旦任何一行的插入操作不成功即退出函数,否则,insert会坚持执行所有行的数据。返回值为成功执行的行数(可能为0)。
+
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类的析构函数所调用。