Bir uyum atma CodeIgniter olmadan bir veritabanı bağlantısını test yapılabilir?

2 Cevap php

Ben hemen AutoMailer, ben bir süre için şimdi üzerinde çalıştığım bir programı benim ilk sürümü bitti. Ben sadece yükleyici yazıyı bitirmek lazım. Onun işi şablonlar codigniter yapılandırmaları yeniden yazmak için. Ben çalışma okuma / yazma şeyler var, ama yanılıyorlar eğer codingiter bir sistem hatası atmadan kullanıcı tarafından verilen sunucu kimlik bilgilerini test edebilmek istiyorum. Ben doğru veya yanlış döndüren bir bağlantıyı test etmek için kullanabileceğiniz ve CodeIgniter bir uyum var yapmaz mysql_connect başka bir işlevi var mı?

Bu benim ne var

function _test_connection(){
    if(mysql_connect($_POST['host'], $_POST['username'], $_POST['password'], TRUE))
        return TRUE;
    else
        return FALSE;
}

Codigniter bu gibi bir sistem hatası atar.

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

    <h4>A PHP Error was encountered</h4>

    <p>Severity: Warning</p>
    <p>Message:  mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Unknown MySQL server host 'x' (1)</p>
    <p>Filename: controllers/install.php</p>
    <p>Line Number: 57</p>

</div>

Ben oldukça hata raporlama kapatmak istemem.

2 Cevap

Eğer PHP tarafından atılmış olması hatayı bastırmak için @ operator kullanabilirsiniz.

function _test_connection(){
    $db = @mysql_connect($_POST['host'], $_POST['username'], $_POST['password'], TRUE);
    if($db)
        return TRUE;
    else
        return FALSE;
}

Hatta kritik hataları gizlemek gibi iyi bir fikir değildir çoğu zaman kullanmak unutmayın.

Hakkında daha fazla bilgi için PHP kılavuzda Error Handling and Logging bölümleri göz atın.

Bu PHP'nin yerleşik mysql işlevini bağlamak kullanır gibi en iyi çözüm değildir. Aşağıdaki DOESNT'İŞ! ancak bu CodeIgniter bir app kurulumda bir kullanıcının veritabanı girişi test çalışması gerektiğini nasıl olduğunu.

$config['hostname'] = "localhost";
$config['username'] = "username";
$config['password'] = "password";
$config['database'] = "database_name";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = FALSE;
$config['cache_on'] = FALSE;
$config['cachedir'] = "";
$config['char_set'] = "utf8";
$config['dbcollat'] = "utf8_general_ci";
if($this->load->database($config)==TRUE){
    return TRUE;
}else{
    return FALSE;
}