1

我使用的功能與數據庫的工作。現在我已經定義了功能的方式如下: -如何使用函數連接到數據庫以及如何使用查詢?

/** 
* 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 ([email protected]_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的,是可以通過只增加一個 '' 到MySQL ....像做: -

@mysql_connect 

@mysqli_connect 
+0

Re mysql - > mysqli:最好看一下手冊中的例子。 – 2012-03-25 10:39:53

+0

Pekka - OOps它是@mysqli_connect – 2012-03-25 10:43:45

+2

嘗試使用[PDO](http://php.net/manual/en/book.pdo.php) – Simone 2012-03-25 10:49:20

回答

0

隨着全球常量,您可以直接使用這些函數內。所以在這種情況下,

/** 
* 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 ([email protected]_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有不同的語法。首先,將端口明確地傳遞給connect方法,而不是像上面那樣追加到主機上。請閱讀manual

您還應該考慮按照Simone Vittori的建議使用PDO庫。

+0

好@Abhay這實際上是工作......謝謝:) – 2012-03-25 11:41:00

+0

你能告訴我,我會'@ mysql'到'@ mysqli' ...無法找到它在PHP手冊... – 2012-03-25 11:42:52

+0

當然你可以讓mysql到mysqli,但轉換可能不那麼簡單。另外我會建議使用MySQLi的對象風格而不是程序風格。我在回覆中給出了一個鏈接 – Abhay 2012-03-25 12:06:16

相關問題