Как использовать функцию для подключения к базе данных и как работать с запросами? - PullRequest
1 голос
/ 25 марта 2012

Я использую функции для работы с базой данных. Теперь я определил функции следующим образом: -

/**
 * Database definations
 */
define ('db_type', 'MYSQL');
define ('db_host', 'localhost');
define ('db_port', '3306');
define ('db_name', 'database');
define ('db_user', 'root');
define ('db_pass', 'password');
define ('db_table_prefix', '');

/**
 * Database Connect
  */
function db_connect($host = db_host, $port = db_port, $username = db_user, $password = db_pass, $database = db_name) {
    if(!$db = @mysql_connect($host.':'.$port, $username, $password)) {
        return FALSE;
    }
    if((strlen($database) > 0) AND (!@mysql_select_db($database, $db))) {
        return FALSE;
    }
    // set the correct charset encoding
    mysql_query('SET NAMES \'utf8\'');
    mysql_query('SET CHARACTER_SET \'utf8\'');
    return $db;
}

/**
 * Database Close
  */
function db_close($identifier) {
    return mysql_close($identifier);
}

    /**
 * Database Query
  */
function db_query($query, $identifier) {
    return mysql_query($query, $identifier);
}

Теперь я хочу знать, является ли это хорошим способом сделать это или нет .....

Кроме того, при подключении к базе данных я использую

$host = db_host

Это нормально??Во-вторых, как я могу использовать эти функции, весь этот код находится в моем FUNCTIONS.php Определениях базы данных, а также соединении с базой данных ... сделает ли это для меня все необходимое ...

Используя эти функции, как я смогу подключиться к базе данных и используя функцию запроса ... как я смогу выполнить запрос?


ОЧЕНЬ ВАЖНО : Как я могусделать mysql для mysqli, это можно сделать, просто добавив ' i ' к mysql .... Как: -

@mysql_connect

@mysqli_connect

1 Ответ

0 голосов
/ 25 марта 2012

С глобальными константами вы можете напрямую использовать их внутри функции. Так что в этом случае

/**
 * Database Connect
 */
function db_connect() {
    if(!$db = @mysql_connect(db_host . ':' . db_port, db_user, db_pass)) {
        return FALSE;
    }
    if((strlen(db_name) > 0) AND (!@mysql_select_db(db_name, $db))) {
        return FALSE;
    }
    // set the correct charset encoding
    mysql_query('SET NAMES \'utf8\'');
    mysql_query('SET CHARACTER_SET \'utf8\'');
    return $db;
}

А вот как вы можете реализовать код клиента:

<?php
if(!$conn = db_connect()) {
    die('cant connect to mysql');
}
$rs = db_query('SELECT * FROM tableA', $conn);
/* loop through the resultset */
db_close ($conn);
?>

Что касается преобразования mysql в mysqli, нет, это может быть не так просто; просто добавление «я» может не сработать. MySQLi имеет разные синтаксисы. Например, порт явно передается методу подключения, а не добавляется к хосту, как это было сделано выше. Пожалуйста, прочитайте руководство .

Вам также следует рассмотреть возможность использования библиотеки PDO, как это предложено Симоне Виттори.

...