【发布时间】:2014-06-19 04:24:04
【问题描述】:
所以当我尝试插入 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 文件。
数据库.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 似乎区分大小写我只是把它们放在大写锁定中(就像它们在 oracle 中一样) ,并工作。所以这是最终模型的功能:
function introducir_articulos(){
$data = array(
'ID'=>5,
'TITULO'=>"titulo",
'DESCRIPCION'=>"descripcion",
'CUERPO'=>"CUERPO"
);
$this->db->insert("ARTICULO", $data);
}
无法回答我自己的问题,所以我在这里回答了。
【问题讨论】:
-
首先检查您的连接是否正常?尝试对此进行选择或任何查询
-
我尝试从表中选择 *,并获取行数,它返回 2(所以很好),我应该猜它连接正确吗?我是 phpOO 和 codeigniter 的新手,但对 php 或 MVC 框架不熟悉。
-
试试 $this->db->query("your query");
-
终于由我回答了,我是stackoverflow的新手,所以直到今天我都无法回答我自己的问题。所以我在问题帖子中做了(正如stackoverflow建议的那样)我做对了吗?
标签: php oracle codeigniter insert