PHP Veritabanı Bağlantı Fonksiyonu önerisi

0 Cevap php

I would like some advice regarding the generally accepted practices ( or at least the generally accepted SAFE practices) regarding handling database connections in PHP. In my small library I have a database function which performs basic database connection and return a 0 on success and a 1 otherwise ( the function does not return the Database connection handler ) and all calling functions check against the error code to confirm whether to query the DB or not. See Database function code below:

function connect() {

    require('db_login.php'); 
    $resultCode = -1;
    $connection = mysql_connect( $db_host, $db_username, $db_password ); 
    if (!$connection) 
    { 
        //die ("Could not connect to the database: <br />". mysql_error()); 
        //Database Connection failed, inform caller
        $rc=2;
    } 
    // Select the database 
    $db_select=mysql_select_db($db_database); 
    if (!$db_select) 
    { 
        //die ("Could not select the database: <br />". mysql_error());
        //Database Selection failed, inform caller
        $rc=3; 
    }else {
        $rc=0;
    }

    //$rc=0;
    return $rc; 
}

db_login.php dosya açma kimlik bilgilerini içerir. Aşağıda DB sorgulamak için yukarıdaki işlevini kullanan bir fonksiyon örnek:

function getUserCurrentStatus($user) {

    $chkStatusQry= "select status from kpp_user where name='". $user . "'";
    $status =-1;
    if (0==connect()) {
        $result = mysql_query($chkStatusQry);
        $row = mysql_fetch_row($result) or die("Query failed with error: ".mysql_error());
        $status=$row[0];
        mysql_close();  
    }
    return $status;
}

Yukarıdaki prosedür olası güvenlik açıkları vardır ve böyle bir görevi gerçekleştirmek için temel standartlar nelerdir. Nasıl kod daha kolay yönetilebilir hale getirilebilir?

Böyle this one gibi diğer yazı kontrol ettiniz ama onlar benim soru ile ilgili mesajlar da açığız, çok özel gibi görünüyor.

EDIT Also considering the calling function, where is the best place to perform String Sanitization? In the function calling the DB Communication function or everywhere possible?

0 Cevap