您好,我正在尝试在我的 PHP 脚本中从 MySQL 迁移到 MySQLi,我有这个系统类,它具有连接到我需要时调用的数据库的功能,使用这样一个简单的方法:
Sys::database_connect();
函数的实际代码是:
function database_connect(){
require 'conf.php';//configuration file with database variables (sql_)
mysql_connect($sql_serv, $sql_user, $sql_pw) OR die('ERRO!!! não ligou a base de dados');
mysql_select_db($sql_bd);
}
调用该函数后,我可以毫无问题地查询数据库。
但是如果我把它放在 sys 类中,我不能对 mysqli 做同样的事情:
function database_connect(){
require 'conf.php';
$mysqli = new mysqli($sql_serv, $sql_user, $sql_pw, $sql_bd);
if (mysqli_connect_errno()) {
printf("Ligação à Base de dados falhou: %s\n", mysqli_connect_error());
exit();
}
}
当我打电话 Sys::database_connect();
它连接到数据库,但我无法查询我是否习惯了我想要的是一个简单的方法,就像我对普通 MySQL 所做的那样,如果有人可以解释我做错了什么或者为什么我不能做就这样……
提前致谢; 费尔南多·安德拉德。
最佳答案
您以后的查询必须使用您在连接到数据库时创建的 mysqli 连接标识符。因此,将其保存到您的系统类的一个属性中,并在以后使用它。
function database_connect(){
require 'conf.php';
$mysqli = new mysqli($sql_serv, $sql_user, $sql_pw, $sql_bd);
if (mysqli_connect_errno()) {
printf("Ligação à Base de dados falhou: %s\n", mysqli_connect_error());
exit();
}
Sys::$dbConn = $mysqli;
}
后来
function query( $sql ) {
Sys::$dbConn->query( $sql );
// error handling etc.
}
关于php - 使用 mysqli 调用连接数据库的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13974835/