我有这样我的config.php文件:如何通过__construct返回数据库连接以用于mysqli_ *?
define ('DB_SERVER', 'localhost');
define ('DB_USERNAME', 'admin');
define ('DB_PASSWORD', 'password');
define ('DB_DATABASE', 'database');
class DB_Con {
function __construct() {
$con = mysqli_connect (DB_SERVER, DB_USERNAME, DB_PASSWORD) or die ('Connection error -> ' . mysqli_error ($con));
mysqli_select_db ($con, DB_DATABASE) or die ($con);
}
}
和我State.php这样的:
include_once 'config.php';
class State {
public function __construct() {
$db = new DB_con();
}
public function GetStateId($statename) {
$result = mysqli_query ($con, "SELECT State_Id FROM state_master WHERE State_Name='$statename'") or die (mysqli_error ($con));
$row = mysqli_fetch_assoc ($result);
return $row ['State_Id'];
}
}
但是当我尝试调用一个函数GetStateId()
,它给了我一个警告mysqli_query() expects parameter 1 to be mysqli, null given in State.php
。
我也试过$db->$con
而不是$con
在State.php
但结果相同。
有谁能告诉我如何参考原始$con
State.php
用于mysqli_*
?我试图从mysql_*
移动。
你创建一个'DB_con'实例,然后把它扔掉,之后便将其'$ db'处理掉。在这两种情况下,您都需要将它分配给一个属性'$ this-> con'。 - 虽然整个'DB_con'类包装是毫无意义的;只是让它成为一个功能。 – mario 2014-11-24 05:16:48