sqlite3 support, yiiiha!

This commit is contained in:
Claude 2015-09-02 13:15:12 +02:00
parent 2f3c3a6b87
commit ab3afec3f4
3 changed files with 51 additions and 19 deletions

View File

@ -1,4 +1,5 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS | DATABASE CONNECTIVITY SETTINGS
@ -12,14 +13,17 @@
| EXPLANATION OF VARIABLES | EXPLANATION OF VARIABLES
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| |
| ['dsn'] The full DSN string describe a connection to the database.
| ['hostname'] The hostname of your database server. | ['hostname'] The hostname of your database server.
| ['username'] The username used to connect to the database | ['username'] The username used to connect to the database
| ['password'] The password used to connect to the database | ['password'] The password used to connect to the database
| ['database'] The name of the database you want to connect to | ['database'] The name of the database you want to connect to
| ['dbdriver'] The database type. ie: mysql. Currently supported: | ['dbdriver'] The database driver. e.g.: mysqli.
mysql, mysqli, postgre, odbc, mssql, sqlite, oci8 | Currently supported:
| cubrid, ibase, mssql, mysql, mysqli, oci8,
| odbc, pdo, postgre, sqlite, sqlite3, sqlsrv
| ['dbprefix'] You can add an optional prefix, which will be added | ['dbprefix'] You can add an optional prefix, which will be added
| to the table name when using the Active Record class | to the table name when using the Query Builder class
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection | ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed. | ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
| ['cache_on'] TRUE/FALSE - Enables/disables query caching | ['cache_on'] TRUE/FALSE - Enables/disables query caching
@ -34,27 +38,55 @@
| multi-byte character set and are running versions lower than these. | multi-byte character set and are running versions lower than these.
| Sites using Latin-1 or UTF-8 database character set and collation are unaffected. | Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix | ['swap_pre'] A default table prefix that should be swapped with the dbprefix
| ['autoinit'] Whether or not to automatically initialize the database. | ['encrypt'] Whether or not to use an encrypted connection.
|
| 'mysql' (deprecated), 'sqlsrv' and 'pdo/sqlsrv' drivers accept TRUE/FALSE
| 'mysqli' and 'pdo/mysql' drivers accept an array with the following options:
|
| 'ssl_key' - Path to the private key file
| 'ssl_cert' - Path to the public key certificate file
| 'ssl_ca' - Path to the certificate authority file
| 'ssl_capath' - Path to a directory containing trusted CA certificats in PEM format
| 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':')
| 'ssl_verify' - TRUE/FALSE; Whether verify the server certificate or not ('mysqli' only)
|
| ['compress'] Whether or not to use client compression (MySQL only)
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections | ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
| - good for ensuring strict SQL while developing | - good for ensuring strict SQL while developing
| ['ssl_options'] Used to set various SSL options that can be used when making SSL connections.
| ['failover'] array - A array with 0 or more data for connections if the main should fail.
| ['save_queries'] TRUE/FALSE - Whether to "save" all executed queries.
| NOTE: Disabling this will also effectively disable both
| $this->db->last_query() and profiling of DB queries.
| When you run a query, with this setting set to TRUE (default),
| CodeIgniter will store the SQL statement for debugging purposes.
| However, this may cause high memory usage, especially if you run
| a lot of SQL queries ... disable this to avoid that problem.
| |
| The $active_group variable lets you choose which connection group to | The $active_group variable lets you choose which connection group to
| make active. By default there is only one group (the 'default' group). | make active. By default there is only one group (the 'default' group).
| |
| The $active_record variables lets you determine whether or not to load | The $query_builder variables lets you determine whether or not to load
| the active record class | the query builder class.
*/ */
$active_group = 'default'; $active_group = 'default';
$query_builder = TRUE; $query_builder = TRUE;
$CI = & get_instance();
$CI =& get_instance(); if ($CI->config->item('db_driver') == 'sqlite')
{
$db['default']['hostname'] = $CI->config->item('db_hostname'); $db['default']['database'] = $CI->config->item('db_database') . '.db';
$db['default']['username'] = $CI->config->item('db_username'); $db['default']['dbdriver'] = 'sqlite3';
$db['default']['password'] = $CI->config->item('db_password'); }
$db['default']['database'] = $CI->config->item('db_database'); else
$db['default']['dbdriver'] = 'mysqli'; {
$db['default']['hostname'] = $CI->config->item('db_hostname');
$db['default']['username'] = $CI->config->item('db_username');
$db['default']['password'] = $CI->config->item('db_password');
$db['default']['database'] = $CI->config->item('db_database');
$db['default']['dbdriver'] = 'mysqli';
}
$db['default']['dbprefix'] = $CI->config->item('db_prefix'); $db['default']['dbprefix'] = $CI->config->item('db_prefix');
$db['default']['pconnect'] = FALSE; $db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE; $db['default']['db_debug'] = TRUE;
@ -66,6 +98,5 @@ $db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE; $db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE; $db['default']['stricton'] = FALSE;
/* End of file database.php */ /* End of file database.php */
/* Location: ./application/config/database.php */ /* Location: ./application/config/database.php */

View File

@ -19,6 +19,7 @@ $config['db_hostname'] = '127.0.0.1';
$config['db_database'] = 'stikked'; $config['db_database'] = 'stikked';
$config['db_username'] = 'stikked'; $config['db_username'] = 'stikked';
$config['db_password'] = 'stikked'; $config['db_password'] = 'stikked';
//$config['db_driver'] = 'sqlite';
/** /**
* Table prefix * Table prefix

View File

@ -266,7 +266,7 @@ class Main extends CI_Controller
//ipv6 migration //ipv6 migration
$fields = $this->db->field_data('trending'); $fields = $this->db->field_data('trending');
if ($fields[1]->max_length < 45) if (config_item('db_driver') != 'sqlite' && $fields[1]->max_length < 45)
{ {
$db_prefix = config_item('db_prefix'); $db_prefix = config_item('db_prefix');
@ -275,14 +275,14 @@ class Main extends CI_Controller
$this->db->query("ALTER TABLE " . $db_prefix . "trending ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "trending ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'");
$this->db->query("ALTER TABLE " . $db_prefix . "pastes ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "pastes ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'");
$this->db->query("ALTER TABLE " . $db_prefix . "blocked_ips ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "blocked_ips ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'");
$this->db->query("ALTER TABLE " . $db_prefix . "ci_sessions ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "sessions ALTER COLUMN ip_address TYPE VARCHAR(45), ALTER COLUMN ip_address SET NOT NULL, ALTER COLUMN ip_address SET DEFAULT '0'");
} }
else else
{ {
$this->db->query("ALTER TABLE " . $db_prefix . "trending CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "trending CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'");
$this->db->query("ALTER TABLE " . $db_prefix . "pastes CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "pastes CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'");
$this->db->query("ALTER TABLE " . $db_prefix . "blocked_ips CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "blocked_ips CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'");
$this->db->query("ALTER TABLE " . $db_prefix . "ci_sessions CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'"); $this->db->query("ALTER TABLE " . $db_prefix . "sessions CHANGE COLUMN ip_address ip_address VARCHAR(45) NOT NULL DEFAULT '0'");
} }
} }
@ -294,7 +294,7 @@ class Main extends CI_Controller
if ($field->name == 'title') if ($field->name == 'title')
{ {
if ($field->max_length < 50) if (config_item('db_driver') != 'sqlite' && $field->max_length < 50)
{ {
$db_prefix = config_item('db_prefix'); $db_prefix = config_item('db_prefix');