-2

我是 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”,但显然我仍然会遇到同样的问题。

4

1 回答 1

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_ 结果:: fetch_ all

mysqli_ 结果:: fetch_ 数组

mysqli_ 结果:: fetch_ assoc

mysqli_result::fetch_field_direct

mysqli_ 结果:: fetch_ 字段

mysqli_result::fetch_fields

mysqli_ 结果:: fetch_ 对象

mysqli_ 结果:: fetch_ 行

见: http: //php.net/manual/en/mysqli.summary.php

于 2013-06-15T14:30:05.567 回答