首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码点火器GroceryCRUD教程Fata异常表DOes不存在

问代码点火器GroceryCRUD教程Fata异常表DOes不存在
EN

Stack Overflow用户
提问于 2013-05-04 15:47:08
回答 1查看 1.9K关注 0票数 0

我是新来的代码点火器和GroceryCRUD。在基本安装和验证之后,我创建了数据库表,并开始学习这里的新手教程。

http://www.grocerycrud.com/documentation/create-crud-codeigniter-tutorial

代码语言:javascript
复制
Fatal error: Uncaught exception Exception with message The table name does not exist.
Please check you database and try again. in /Library/WebServer/Documents/application/libraries/Grocery_CRUD.php:4349
Stack trace: #0 /Library/WebServer/Documents/application/libraries/Grocery_CRUD.php(3875):
grocery_CRUD->get_table() #1 /Library/WebServer/Documents/application/libraries/Grocery_CRUD.php(3891):
grocery_CRUD->pre_render() #2

/Library/WebServer/Documents/application/controllers/main.php(27): grocery_CRUD->render() #3
[internal function]: Main->employees() #4 /Library/WebServer/Documents/system/core/CodeIgniter.php(359): call_user_func_array(Array, Array) #5
/Library/WebServer/Documents/index.php(202): require_once(/Library/WebSer...) #6
{main} thrown in /Library/WebServer/Documents/application/libraries/Grocery_CRUD.php on line 4349

我得到的表不存在,当我修改main.php以显示表列表时

代码语言:javascript
复制
echo "<pre>";
print_r($this->db->list_tables());
die();

我得到了一个空数组。因此,我认为我所配置的MySQL用户可能出了问题,虽然数据库连接成功了,但数据库还是没有被选中(或者我会在初始化过程的早些时候退出)。

我的配置

Mac 10.7.5

database.php

代码语言:javascript
复制
$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'cruduser';
$db['default']['password'] = 'foo45bar';
$db['default']['database'] = 'crud';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

$this->db->list_table()的结果;在main.php中

欢迎来到Codeigniter世界

代码语言:javascript
复制
Array
(
)

MySQL用户表的选择

代码语言:javascript
复制
mysql> select host,user  from mysql.user;
+-----------+----------+
| host      | user     |
+-----------+----------+
| %         | cruduser |
| localhost | root     |
+-----------+----------+
2 rows in set (0.00 sec)

在MySQL中显示数据库

代码语言:javascript
复制
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| crud               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

在“crud”数据库中显示表

代码语言:javascript
复制
mysql> show tables;
+----------------+
| Tables_in_crud |
+----------------+
| actor          |
| category       |
| customers      |
| employees      |
| film           |
| film_actor     |
| film_category  |
| offices        |
| orderdetails   |
| orders         |
| payments       |
| productlines   |
| products       |
+----------------+
13 rows in set (0.00 sec)

main.php源

代码语言:javascript
复制
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Main extends CI_Controller {

    function __construct()
    {
        parent::__construct();

        /* Standard Libraries of codeigniter are required */
        $this->load->database();
        $this->load->helper('url');
        /* ------------------ */

        $this->load->library('grocery_CRUD');

    }

    public function index()
    {
        echo "<h1>Welcome to the world of Codeigniter</h1>";//Just an example to ensure that we get into the function


echo "<pre>";
print_r($this->db->list_tables());
die();
}

    public function employees()
    {
        $this->grocery_crud->set_table('employees');
        $output = $this->grocery_crud->render();

        echo "<pre>";
        print_r($output);
        echo "</pre>";
        die();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2013-05-06 14:30:39

答案是在此消息CodeIgniter: Unable to connect to your database server using the provided settings Error Message的堆栈溢出上。

问题是,在OSX上,/private/etc/php.ini.default必须编辑并保存为php.ini,对属性的更改指向/var/mysql/mysql.sock,但在OSX中,文件位于/tmp/mysql.sock中。

改变这个

代码语言:javascript
复制
mysql.default_socket = /var/mysql/mysql.sock

到这个

代码语言:javascript
复制
mysql.default_socket = /tmp/mysql.sock

弹跳阿帕奇

乔治

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16376099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档