发新话题
打印

FleaPHP开发框架关于数据库类操作FAQ

FleaPHP开发框架关于数据库类操作FAQ

问:FLEA里面可以输出SQL语句吗?
答:dump($table->dbo->log)

问:PHP有连接池么?
答:mysql本身没有连接池,如果一定要使用连接池,可供选择的sqlrelay比较常见,apache也有连接池的模块

问:外键必须是int嘛?
答:不是,字符串都可以

问:是不是 附表外键的命名 应该和 主表的 主键相同呢?
答:不需要一样

问:SQL语句update downlist set downList_seq= downList_seq+1 where downList_seq < 7 and downList_seq >3,用update()怎么实现?
答:
复制内容到剪贴板
代码:
$conditions = array(
   array('downList_seq', 7, '<'),
   array('downList_seq', 3, '>'),
);
$table->incrField($conditions, 'downList_seq');
$table->incrField() 可以增加指定字段的值
$table->decrField() 可以减小

问:在查询条件中使用and,or,not
答:
复制内容到剪贴板
代码:
$conditions = array(
    '字段A' => '值1',
    '字段B' => '值2',
    '字段C' => '值3',
);

生成:
`字段A` = '值1' AND `字段B` = '值2' AND `字段C` = '值3'

=====================

$conditions = array(
    '字段A' => array('值1', '>='),
    '字段B' => '值2',
);

生成:
`字段A` >= '值1' AND `字段B` = '值2'

=====================

$conditions = array(
    '字段A' => array('值1', '>='),
    '字段B' => '值2',
);

生成:
`字段A` >= '值1' AND `字段B` = '值2'
$conditions 为数组时,每一个数组元素都是下列格式的数组:
array(字段名, 值, 比较操作, 连接下一个条件的操作, 是否是自定义命令)
如果“是否是自定义命令”为 true,则“字段名”为自定义的查询条件,而“值”和“比较操作”两项将被忽略。

“比较操作”的默认值是“=”;
“连接下一个条件的操作”的默认值是“AND”;
“是否是自定义命令”的默认值是 false。

当 $conditions 包含多个元素时,元素按照下面的方式连接:
复制内容到剪贴板
代码:
字段名 比较操作 值
    连接下一个条件的操作
字段名 比较操作 值
    连接下一个条件的操作
字段名 比较操作 值
    ...........
假设有如下的 $conditions:
复制内容到剪贴板
代码:
$conditions = array(
    array('username', 'dualface', '=', 'OR'),
    array('user_level', 'vip', '>='),
);

生成的 sql 如下

WHERE `username` = 'dualface' OR `user_level` >= 'vip'
问:is not null 如何写?
答:
复制内容到剪贴板
代码:
$conditions = array(
   array('is not null downList_seq', null, null, 'and', true),
   array('downList_seq', 3, '>'),
);
问:数据库操作的save ,create有什么区别啊?
答:create是新建,save集成了新建和更新

问:INSERT IGNORE INTO和INSERT INTO , 在MYSQL中有什么区别?
答:相當於 php中的 @ 抑制錯誤的

问:想知道一个数列 或者一个字段的最小值或者最大值
答:SELECT interval(15,xxx),xxx FROM tablexxx ;

问:
复制内容到剪贴板
代码:
class SM extends FLEA_Db_TableDataGateway
{
        var $tableName = 'table';
        var $primaryKey = 'id';
}
[code]
用这个的时候当数据表名是动态传进来的话应该怎么办呢?
答:
[code]
$dbo =& FLEA::getDBO();
$table->tableName = $table_name;
$table->setDBO($dbo);
setDBO() 相当于重新初始化 TableDataGateway
要在构造的时候指定表名则
复制内容到剪贴板
代码:
$tableposts = & new Table_Posts(array('tableName' => 'pop_blogs'));
问:怎样在可以为空的字段插入 ""?而不是默认的 NULL
答:〔
复制内容到剪贴板
代码:
\"\"[code]

问:$conn1=$this->dbo;
$conn2=&$conn1;
是几个数据库连接?
答:一个

问:

[code]
$dbo=&new Mysql($this->dbDSN);
$dbo2=&new Mysql($this->dbDSN);
是同一个连接吗?

答:是,只要是同样的 dsn,就是同一个连接

[ 本帖最后由 Matrix.stdio 于 2007-6-17 09:43 编辑 ]

TOP

发新话题