我是PHP评论脚本的开发者,该脚本旨在包含在用户网站的主体中。该脚本有自己的数据库连接,目前使用“MySQL”扩展。为了使脚本更易于集成,我保留了网站现有的数据库连接(如果有的话),在连接到脚本自己的连接之前添加这两行。
@$original_database = mysql_query('SELECT DATABASE();');
@$original_database = mysql_result($original_database, 0);
..然后 我的脚本完成后我选择原始数据库..
if (!empty($original_database)) {
@mysql_select_db ($original_database);
}
目前此工作正常。然而,许多网站(非常正确地)开始使用更新的扩展,例如“MySQLi”和“PDO”,这使得保留现有数据库连接变得更加困难,因为例如“MySQLi”会抱怨连接是通过'MySQL ”。你能推荐最好的方法来解决这个问题吗?如果它有所不同,我计划在不久的将来从'MySQL'切换到'MySQLi',但显然我仍会遇到同样的问题。
答案 0 :(得分:0)
始终使用'MySQLi'
function custom_mysqli_connect(){
$GLOBALS['db_connect']=false;
$GLOBALS['db_connect']=@mysqli_connect(HOSTNAME, USERNAME, PASSWORD);
if($GLOBALS['db_connect']==false){
echo("Unable to connect to the database");
}
if(!@mysqli_select_db($GLOBALS['db_connect'], DATABASE)){
echo("Unable to select database");
}
mysqli_query($GLOBALS['db_connect'],'SET NAMES UTF8');
}
一旦
调用 custom_mysqli_connect()提出您的疑问:
$query_1 = "SELECT * FROM table";
if($results=@mysqli_query($GLOBALS['db_connect'], $query_1)){
$array=array();
while($result=mysqli_fetch_assoc($results)){
$array[]=$result;
}
mysqli_free_result($results);
}
完成后
@mysqli_close($GLOBALS['db_connect']);
还有很多其他方法可以获取结果
mysqli_ result :: fetch_ all
mysqli_ result :: fetch_ array
mysqli_ result :: fetch_ assoc
mysqli_ result :: fetch_ field_ direct
mysqli_ result :: fetch_ field
mysqli_ result :: fetch_ fields
mysqli_ result :: fetch_ object
mysqli_ result :: fetch_ row