因此,当我尝试插入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')
有什么建议吗?
重新编辑:
好吧,这真的很疯狂,不是引号问题,当你从PHP(或者至少从代码点火器(编写查询时,oracle似乎是区分大小写的,我只是把它们放在caps锁中(就像在oracle中一样(,然后就工作了。这就是最终模型的功能:
function introducir_articulos(){
$data = array(
'ID'=>5,
'TITULO'=>"titulo",
'DESCRIPCION'=>"descripcion",
'CUERPO'=>"CUERPO"
);
$this->db->insert("ARTICULO", $data);
}
无法回答我自己的问题,所以我在这里回答了。
在您的配置"DATABASE.php"中,您应该完成以下语句
$db['default']['database'] = '';
好吧,这真的很疯狂,当你从PHP编写查询时,oracle似乎区分大小写。(或者至少来自代码点火器(只是把它们锁在盖子里,然后工作了3个小时。这就是最终模型的功能:
function introducir_articulos(){
$data = array(
'ID'=>5,
'TITULO'=>"titulo",
'DESCRIPCION'=>"descripcion",
'CUERPO'=>"CUERPO"
);
$this->db->insert("ARTICULO", $data);
}