使用RedBean PHP清空或截断表?

时间:2010-12-03 17:04:59

标签: php sql orm redbean

我正在使用RedBean PHP进行测试,我非常喜欢它,但是我不知道如何截断表格。我可以获取所有bean并删除它们,但这看起来很麻烦。

4 个答案:

答案 0 :(得分:6)

在RedBean 1.3中,您可以使用R :: wipe($ type)截断表。

答案 1 :(得分:2)

RedBean只是一个ORM工具(AFAIK),因此如果您的后端数据库是基于SQL的,您只需执行以下SQL语句:TRUNCATE TABLE yourTable;

直接通过RedBean执行查询

适配器

适配器是与RedBean数据库通信的类。这个适配器 使得执行查询以操纵数据库成为可能。得到一个这样的例子 适配器使用:

$adapter = $toolbox->getDatabaseAdapter();

来自http://www.redbeanphp.com/downloads/redbean.pdf - 1.3 http://www.redbeanphp.com/manual/manual.pdf - 2.0

答案 2 :(得分:1)

像这样擦拭一张桌子:

R::wipe($table);

擦除MySQL架构中的所有表,如下所示:

function CleanAllTables() {
    $tables = R::getCol(' show tables ');
    foreach ($tables as $table) {
        R::wipe($table);
    }
}

<强> MySQL的:

TRUNCATE TABLE <table_name>

使用 RedBean适配器

执行
$adapter->exec('TRUNCATE TABLE <table_name>');

这应该可以胜任! :)

答案 3 :(得分:0)

老问题,但是对于它的价值,RedBean 4.0+(以及可能的旧版本)在使用各种N-M关系映射时会使用外键。

因此,在这种情况下,在我的情况下,为了解决这个问题,有必要将外键检查设置为0。

R::exec('SET FOREIGN_KEY_CHECKS = 0;');
R::wipe('tablename');