在pyrocms中发布tabel_exist

时间:2013-10-18 19:55:54

标签: codeigniter activerecord pyrocms

我在我的网络应用程序中使用了pyrocms 我想在插件中为我的模块创建库。
当我在我的数据库中将此代码用于tabel llist时。

$CI = & get_instance();
$all=$CI->db->list_tables();

我有" defualt_products" $all数组中的值。这意味着我有" default_products"我的数据库中的表。但是当我使用下一个代码时,结果是错误的。为什么呢?

if(!$CI->db->table_exists("default_products"))
    return false;

我使用的是pyrocms 2.2。

2 个答案:

答案 0 :(得分:1)

您没有向table_exists传递任何内容。怎么知道你要检查哪个表?它需要一个参数...您要检查的表名。

http://ellislab.com/codeigniter/user-guide/database/table_data.html

所以,如果你这样做,并且存在一个名为“tablename”的表,那么你仍然会得到错误,因为如果表存在,table_exists会返回TRUE。

if ($CI->db->table_exists('tablename')
{
return FALSE;
}

答案 1 :(得分:1)

您可以使用dbprefix方法在database.php配置文件中包含表格前缀:

if ( !$CI->db->table_exists($CI->db->dbprefix('products')) ){
   //there is no such table, products
   echo "there is no table named ".$CI->db->dbprefix('products');
   die();
}else{
   //table found
   echo "table found"; die();
}

如果它不起作用,那么我认为你的问题不是这段代码!