codeigniter insert oracle error文件名:C:\ xampp \ htdocs \ system \ database \ DB_driver.php行号:330

时间:2014-05-02 13:06:42

标签: php oracle codeigniter insert

当我尝试在oracle数据库中插入时,我收到此错误。我认为我已经正确配置了一切,并且我正确地做事,但是不知道问题出在哪里,因为我没有数字错误。

错误:

Error Number:
INSERT INTO "articulo" ("id", "titulo", "descripcion", "cuerpo") VALUES (1, 'titulo', 'descripcion', 'CUERPO')
Filename: C:\xampp\htdocs\system\database\DB_driver.php
Line Number: 330

控制器类:

class Articulos extends CI_Controller {
function index(){
    //cargo el helper de url, con funciones para trabajo con URL del sitio
    $this->load->helper('url');
    $this->load->database();  
    //cargo el modelo de artículos
    $this->load->model('Articulo_model');

    //pido los ultimos artículos al modelo
    $this->Articulo_model->introducir_articulos();
}}

模型类中的函数:

function introducir_articulos(){
    $data = array(
            'id'=>1,
           'descripcion'=>"descripcion",
           'cuerpo'=>"CUERPO",
           'titulo'=>"titulo"
        );

    $this->db->insert('articulo', $data); 

}

因为这只是要插入,所以没有视图。无论如何这是我的conf文件。

database.php中

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'ci';
$db['default']['password'] = 'ci';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$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;

我最近嘲笑,有些地方数据在基于oracle的配置中放置数据库名称是没有用的。

欢迎任何帮助。

ps:抱歉我的英语。

编辑: 现在我知道为什么,但不知道如何解决它,似乎这直接得到了这个查询:

INSERT INTO "articulo" ("id", "titulo", "descripcion", "cuerpo") VALUES (1, 'titulo', 'descripcion', 'CUERPO')

它是一个引用问题,它不应该在插入中加上引号,所以它应该是这样的。

 INSERT INTO articulo (id, titulo, descripcion, cuerpo) VALUES (1, 'titulo', 'descripcion', 'CUERPO')

任何提示?

RE-编辑:

好吧这真的很疯狂,没有引用问题,当你从PHP编写查询时(或者至少从代码点火器)编写查询时,oracle似乎区分大小写我只是把它们放在大写锁中(因为它们在oracle中) ),并且工作。所以这是最终模型的功能:

function introducir_articulos(){
    $data = array(
            'ID'=>5,
            'TITULO'=>"titulo",
           'DESCRIPCION'=>"descripcion",
           'CUERPO'=>"CUERPO"

        );


    $this->db->insert("ARTICULO", $data); 

}

无法回答我自己的问题,所以我在这里回答。

2 个答案:

答案 0 :(得分:1)

在您的配置“DATABASE.php”中,您应该完成此声明

$db['default']['database'] = '';

答案 1 :(得分:0)

好的,这真的很疯狂,当你从PHP编写查询时,oracle似乎区分大小写。(或者至少从代码点火器)只是把它们放入大写锁定,并且工作了3个小时。所以这是最终模型的功能:

function introducir_articulos(){
    $data = array(
            'ID'=>5,
            'TITULO'=>"titulo",
           'DESCRIPCION'=>"descripcion",
           'CUERPO'=>"CUERPO"

        );


    $this->db->insert("ARTICULO", $data); 

}