0

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

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

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

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

我使用 pyrocms 2.2。

4

2 回答 2

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;
}
于 2013-10-18T20:22:27.807 回答
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();
}

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

于 2013-10-20T10:52:55.127 回答