我開始了一個新項目,我希望將Codeigniter與SQLite結合使用。我搜索了關於這個的信息,並且我設法從我的SQLite數據庫中獲取數據,但是我不知道如何使用這個數據爲表創建一個CRUD,我試圖按照過去一樣的方式來創建它與MySQL購買它是行不通的。如何使用SQLite創建帶Codeigniter的CRUD?
這裏是我做過什麼:
的config/database.php中
$db['default'] = array(
'dsn' => '',
'hostname' => '',
'username' => '',
'password' => '',
'database' => APPPATH.'/database/Pasapalabra.sqlite',
'dbdriver' => 'sqlite3',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
的config/autoload.php
$autoload['libraries'] = array('database');
型號/ modelo_prueba.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class modelo_prueba extends CI_Model {
public function getTestData() {
return $this->db->get('preguntas')->result();
}
}
?>
控制器/ Welcome.php
組public function __construct() {
parent::__construct();
$this->load->library("grocery_CRUD");
}
public function prueba() {
$this->load->model('modelo_prueba');
$dataSet = $this->modelo_prueba->getTestData();
$this->load->view('data_view', [
'dataSet' => $dataSet
]);
}
的意見/ data_view.php
<h4>Lets test the data</h4>
<?php
if($dataSet) {
foreach($dataSet as $dataItem) {
echo $dataItem->definicion . "<hr>";
}
}
?>
<h5>done!</h5>
這個工作對我來說,這表明在「preguntas」數據庫中正確的所有數據,但我現在想創建一個CRUD就像我平時做與MySQL和它的工作,它顯示數據庫錯誤。
,我從上面的代碼中唯一改變的是的welcome.php
public function prueba() {
$crud = new Grocery_CRUD();
$crud->set_table('preguntas');
$output = $crud->render();
$this->load->view("example.php", $output);
}
是在屏幕上顯示的錯誤是:
A PHP Error was encountered
Severity: Warning
Message: SQLite3::query(): Unable to prepare statement: 1, near "SHOW": syntax error
Filename: sqlite3/sqlite3_driver.php
Line Number: 129
Backtrace:
File: C:\xampp\htdocs\Pasapalabra_Isidro\application\models\Grocery_crud_model.php
Line: 436
Function: query
File: C:\xampp\htdocs\Pasapalabra_Isidro\application\libraries\Grocery_CRUD.php
Line: 48
Function: get_field_types_basic_table
File: C:\xampp\htdocs\Pasapalabra_Isidro\application\libraries\Grocery_CRUD.php
Line: 1567
Function: get_field_types
File: C:\xampp\htdocs\Pasapalabra_Isidro\application\libraries\Grocery_CRUD.php
Line: 4507
Function: showList
File: C:\xampp\htdocs\Pasapalabra_Isidro\application\controllers\Welcome.php
Line: 38
Function: render
File: C:\xampp\htdocs\Pasapalabra_Isidro\index.php
Line: 315
Function: require_once
A Database Error Occurred
Error Number: 0
not an error
SHOW COLUMNS FROM `preguntas`
Filename: C:/xampp/htdocs/Pasapalabra_Isidro/system/database/DB_driver.php
Line Number: 691
任何人都知道是什麼發生了什麼?數據庫連接沒有任何錯誤,因爲之前的代碼有效,但它就像Grocery CRUD無法創建SQLite的CRUD。
我用笨3.1.4工作,我使用SQLite管理器(Firefox)的0.8.3.1
創建SQLite數據庫謝謝您的解答。從雜貨店污物形式交與你必須修改雜貨店豆腐庫sqlite3的作品
在grocery_crud模型中,他們使用原始sql查詢從表中獲取列名,這與sqlite3不兼容,您必須重寫幾行代碼才能使其與sqlite3兼容。檢查grocery_crud_model SHOW COLUMNS FROM – umefarooq
我明白了......好吧,因爲我剛開始這個項目,我可以更改數據庫,我將使用MySQL來保存這些令人頭疼的問題。謝謝你的回答。 – Ise92
有與sqlite3的雜貨crud的解決方案也可用,與sqlite3工作正常我已測試它檢查我的答案 – umefarooq