|   
 UID1 威望1240 点 金钱24019 金币 点卡317 点 
 | 
1#
 发表于 2005-8-24 12:26 
 | 只看该作者 
 ADODB应用进阶
| 关于adodb的简单操作如插入更新删除数据等,大家已经在adodb压缩包的一个教程文件了解到了。adodb的类库在教程中之是简单的列出,关于建表等常用操作并没详细的使用教程,下面我们来看adodb教程进阶操作。 
 1.创建数据库
 这函数就不介绍了 几乎和mysql一样。复制代码CreateDatabase($dbname, $optionsarray=false)
2.创建数据表
 分析语句
 应用 $conn->CreateTableSQL($tabname, $fldarray)复制代码CreateTableSQL($tabname, $fldarray, $taboptarray=false)
$tabname:         表名
 $fldarray  :        语句[或数组方式]
 $taboptarray:其他
 因为adodb面向的数据库有差异,在不同的数据库语句也有变化,因此adobd并不支持传统的sql语句,而是按照自己设定的语句分析执行。
 语句格式如下 $fieldname $type $colsize $otheroption
 也可以数组方式  array($fieldname, $type, [,$colsize] [,$otheroptions]*)
 数据栏位的类型定义
 数据栏位的属性定义复制代码C:  varcharX:  Largest varchar size XL: For Oracle, returns CLOB, otherwise same as ';X'; aboveC2: Multibyte varcharX2: Multibyte varchar (largest size)B:  BLOB (binary large object)D:  Date (some databases do not support this, and we return a datetime type)T:  Datetime or TimestampL:  Integer field suitable for storing booleans (0 or 1)I:  Integer (mapped to I4)I1: 1-byte integerI2: 2-byte integerI4: 4-byte integerI8: 8-byte integerF:  Floating point numberN:  Numeric or decimal number
现在看一个示例复制代码AUTO                For autoincrement number. Emulated with triggers if not available.                Sets NOTNULL also.AUTOINCREMENT        Same as auto.KEY                Primary key field. Sets NOTNULL also. Compound keys are supported.PRIMARY                 Same as KEY.DEF                Synonym for DEFAULT for lazy typists.DEFAULT                The default value. Character strings are auto-quoted unless                the string begins and ends with spaces, eg '; SYSDATE ';.NOTNULL                If field is not null.DEFDATE                Set default value to call function to get today';s date.DEFTIMESTAMP        Set default to call function to get today';s datetime.NOQUOTE                Prevents autoquoting of default string values.CONSTRAINTS        Additional constraints defined at the end of the field definition.
以数组方式定义语句
 AUTO 自增复制代码$flds_a = array(        array(';id';,       ';I';, ';AUTO';, ';PRIMARY';),        array(';a_admin';,  ';C';, ';30';,   ';DEFAULT'; => ';0';,       ';NotNull';),        array(';a_pas';,    ';C';, ';50';,   ';DEFAULT'; => ';0';,       ';NotNull';),        array(';a_data';,   ';C';, ';10';,   ';DEFAULT'; => ';no';,      ';NotNull';),        array(';a_item';,   ';C';, ';10';,   ';DEFAULT'; => ';no';,      ';NotNull';),        array(';a_right';,  ';C';, ';10';,   ';DEFAULT'; => ';no';,      ';NotNull';),        array(';a_time';,   ';T';),        array(';a_end';,    ';T';),        array(';a_remark';, ';B';));
PRIMARY 主键
 DEFAULT 默认值设置方式 用 ';DEFAULT'; => ';值';
 array(';a_remark';,         ';B';                                             )
 B类型为BLOB   不必设置其他属性
 T 时间格式 默认的格式就是 YYYY-MM-DD HH:II:SS
 C varchar 后面是长度限制
 建表
 当$conn->debug=1;时复制代码$dict = NewDataDictionary($conn);$sqlarray_t = $dict->CreateTableSQL(';test_table';, $flds_a);$dict->ExecuteSQLArray($sqlarray_t);
会返回 根据数据库不同 而变化的分析后的代码.
 
 3.取得数据库信息
 MetaDatabases() 以数组形式返回主机上的数据库列表
 应用 $conn->MetaDatabases()
 MetaTables($ttype=false, $showSchema=false) 以数组形式返回当前数据库中的数据表复制代码$dbs = $conn->MetaDatabases();$num_rows = count($dbs);for($i=0;$i<$num_rows;$i++){echo $dbs[$i];}
应用 $conn->MetaTables($tablename)
 MetaColumnNames($table)  以数组形式返回当前数据表中的栏位名复制代码$tables = $conn->MetaTables();$num_rows = count($tables);for($i=0;$i<$num_rows;$i++){echo $tables[$i];}
应用 $conn->MetaColumnNames($table)
 当然adodb功能是很强大的,其他的函数一般用不到,这里就不再继续了。如果有感兴趣的可以共同交流。复制代码$re = $conn->MetaColumnNames($table);$num_fields = count($re);for($i=0;$i<$num_fields;$i++){echo $re[$i];}
 | 
 
| 我是一个呼吸着现在的空气而生活在过去的人
 这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
 我已习惯了孤独,爱上孤独
 他让我看清了自我,还原了自我
 让我再静静的沉思中得到快乐和满足
 再孤独的世界里我一遍又一遍
 不厌其烦的改写着自己的过去
 延伸到现在与未来
 然而那只是泡沫般的美梦
 产生的时刻又伴随着破灭的到来
 在灰飞烟灭的瞬间我看到的是过程的美丽
 而不是结果的悲哀。。。
 
 |  |