当我尝试在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);
}
无法回答我自己的问题,所以我在这里回答。
答案 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);
}