2012-04-02 14 views
3

Wie stelle ich eine Verbindung zu einer SQL Server-Datenbank in CodeIgniter her?Wie stelle ich eine Verbindung zu einer SQL Server-Datenbank in CodeIgniter her?

Ich starte gerade eine Anwendung in CodeIgniter und möchte SQL Server verwenden.

$active_group = 'default'; 
$active_record = TRUE; 

$db['default']['hostname'] = '#.#.#.27'; 
$db['default']['username'] = '@@@@@@'; 
$db['default']['password'] = '@@@@@@@@@'; 
$db['default']['database'] = '$$$$$$$$$$$$$'; 
$db['default']['dbdriver'] = 'mssql'; 
$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; 

Nach dem automatischen Laden der Datenbank zeigt es nur eine leere weiße Seite ohne Fehler. Können Sie mir bitte sagen, welche weiteren Änderungen ich vornehmen muss, um mit der SQL Server-Datenbank zu arbeiten?

#autoload.php# 
$autoload['libraries'] = array('database'); 
+0

Klingt wie Sie PHP-Fehlerberichterstattung aktivieren müssen . – shanethehat

+0

@shanethehat, versucht mit error_reporting() Werten in der Hauptdatei index.php. nicht bestanden. –

Antwort

0

Wie wäre es damit? Ich habe gesehen, dass es auf einigen Servern funktioniert. Ist das ein Windows-Server?

$db['default']['dbdriver'] = "odbc"; 
$db['default']['dbprefix'] = ""; 
$db['default']['pconnect'] = FALSE; 
$db['default']['db_debug'] = TRUE; 
$db['default']['cache_on'] = FALSE; 

weitere Lektüre: http://codefury.net/2011/01/codeigniter-php-iis-mysql-mssql/

hoffe, das hilft

0

Ihre Konfiguration Code ist in Ordnung. Weiter lesen here

Wenn Sie glauben, dass die Fehler nicht angezeigt werden, dann gehen Sie zu index.php und auf der Oberseite platzieren Sie das folgende Snippet, um die Fehler anzuzeigen.

Andere, dann überprüfen Sie, ob der MSSQL-Dienst ausgeführt wird und zugänglich ist. Vielleicht erstellen Sie eine einfache .php und versuchen Sie eine Verbindung mit einfachen Codes.

Eine nicht CI-Datei So etwas wie,

<?php 
$server = 'YOURPC\SQLEXPRESS'; 
$link = mssql_connect($server, 'user', 'pass'); 

if (!$link) { 
    die('Something went wrong while connecting to MSSQL'); 
} 
?> 
+0

ok @starx, lass mich versuchen und werde zu dir zurück! –

0

es ist der gleiche Prozess wie mysql. verwenden Sie die gleiche Konfiguration wie folgt:

$ active_group = 'default'; $ active_record = WAHR;

$ db ['Standard'] ['Hostname'] = 'xxx.xx.xx.xx \ SQLEXPRESS ';

$ db ['Standard'] ['Benutzername'] = 'sa';

$ db [ 'default'] [ 'password'] =

'xxxxxxx'; $ db ['Standard'] ['Datenbank'] = 'xxxxx';

$ db ['default'] ['dbdriver'] = 'mssql';

$ db ['default'] ['dbprefix'] = '';

$ db ['Standard'] ['pconnect'] = TRUE;

$ db ['Standard'] ['db_debug'] = TRUE;

$ db ['default'] ['cache_on'] = FALSCH;

$ db ['default'] ['cachedir'] = '';

$ db ['default'] ['char_set'] = 'utf8';

$ db ['Standard'] ['dbcollat'] => 'utf8_general_ci';

$ db ['default'] ['swap_pre'] = '';

$ db ['Standard'] ['autoinit'] = TRUE;

$ db ['default'] ['stricton'] = FALSCH;

in Ihrem Modell verwenden gleiche wie

Funktion selectagent ($ table, $ agent) {

$ field = $ this-> db-> get_where ($ table, array ('var1' => $ agent, 'Tag (Datum)' => Datum ('d')));

$fields=$field->result(); 

    return $fields; 
} 
3

ich es nicht mit dem unterstützt Treiber von mssql so verwendet, um die Arbeit konnte ich sqlsrv

ich normalerweise mit ip verbinden, Port als hostname, also habe ich, dass .

pconnect gab mir auch Probleme. Ich setzte es auf FALSE und es begann zu arbeiten. Hier

ist die Konfiguration, die ich an der Arbeit:

$db['default']['hostname'] = '127.0.0.1,1433'; 
$db['default']['username'] = 'username1'; 
$db['default']['password'] = 'secretpassword'; 
$db['default']['database'] = 'databasename'; 
$db['default']['dbdriver'] = 'sqlsrv'; 
$db['default']['pconnect'] = FALSE; 
$db['default']['db_debug'] = TRUE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['autoinit'] = TRUE; 
$db['default']['stricton'] = FALSE; 
0

Ich habe gerade dieses Problem gelöst. Und ich war zu MSSQL verbinden gehostet mit Microsoft Azure

Schritte ich nach mehreren Forschungsarbeiten im Internet gefolgt sind wie folgt:

database.cfg:

$db['default']['hostname'] = 'XXXXXXX.database.windows.net'; 
$db['default']['username'] = 'username'; 
$db['default']['password'] = 'password'; 
$db['default']['database'] = 'databasename'; 
$db['default']['dbdriver'] = 'sqlsrv'; 
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = FALSE; 
$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; 

Hauptsächlich dbdriver, pcconnect und den Hostnamen Sie sollte richtig konfiguriert werden.Ruhe ist üblich. Holen Sie sich den Hostnamen aus Ihren azurblauen Datenbankdetails.

Und ich auch einige Systemdateien geändert, als ich hörte, gab es Probleme mit DB-Treiber.

System/database/drivers/sqlsrv/sqlsrv_driver.php

function db_pconnect() 
    { 
     //$this->db_connect(TRUE); 
     return $this->db_connect(TRUE); 
    } 

und

function affected_rows() 
{ 
    //return @sqlrv_rows_affected($this->conn_id); 
    return @sqlsrv_num_rows($this->result_id); 
} 

ich in der Lage war Verbindung zur Datenbank und Datenbankanwendung zu erstellen.

Hoffe, dass es jemandem in Not helfen :)

0

diese einfachen Schritte:

  1. die Instanz installieren mit "Mischbetrieb" -fähigen. Wenn Ihre ungewisse Uhr this - Video beginnt in der richtigen Reihenfolge. Vielleicht ist es eine gute Idee, es vollständig zu sehen.

  2. Änderung der db-config in '... ci/application/config/database.php'

    $active_group = 'default'; 
    $query_builder = TRUE; 
    
    $db['default'] = array(
        'dsn' => '', 
        'hostname' => 'localhost', 
        'username' => 'sa', // <- use 'sa' 
        'password' => 'THE_PASSWORD_YOU_SET_ON_INSTALL', // "mixed-mode" 
        'database' => 'ci', 
        'dbdriver' => 'sqlsrv', 
    // 'dbdriver' => 'mysqli', // <- my old "non-server" config (approx. 70% slower) 
        '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 
    ); 
    

enter image description here

Verwandte Themen