如何在这段代码中在 PHP 中使用 mysqli

Posted

技术标签:

【中文标题】如何在这段代码中在 PHP 中使用 mysqli【英文标题】:How to use mysqli in PHP in this code 【发布时间】:2016-07-14 17:49:50 【问题描述】:

目前我的代码是用来连接我的数据库的。

<?php

/**
* A class file to connect to database
*/
class DB_CONNECT 

// constructor
function __construct() 
    // connecting to database
    $this->connect();


// destructor
function __destruct() 
    // closing db connection
    $this->close();


/**
 * Function to connect with database
 */
function connect() 
    // import database connection variables
    require_once __DIR__ . '/db_config.php';

    // Connecting to mysql database
    $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());

    // Selecing database
    $db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());

    // returing connection cursor
    return $con;


/**
 * Function to close db connection
 */
function close() 
    // closing db connection
    mysql_close();




?>

db_config.php 是

<?php

define('DB_USER', "root"); // db user 
define('DB_PASSWORD', ""); // db password (mention your db password here)
define('DB_DATABASE', "leading10"); // database name
define('DB_SERVER', "localhost"); // db server
?>

在某处使用上述代码时,它会显示使用 mysqli 或 PDO 的警告 我关注了许多 *** 问题,但仍然无法成功。 我知道的一种方法是在 mysql_connect() 之前使用 @ 符号,但将来可能无法使用。 任何帮助表示赞赏

【问题讨论】:

【参考方案1】:

正如其他人已经写的那样,您应该使用mysqli_* 函数。但这不是你的问题。

问题是您将连接分配给 $con 这是一个局部变量,因此 - 一旦 connect() 退出 - 值就会丢失。

此代码有效:

class DB_CONNECT

    private $connection;
    private $database;

    function __construct() 
        $this->connect();
    

    function __destruct() 
        $this->close();
    

    function connect() 
        $this->connection = mysqli_connect( DB_SERVER, DB_USER, DB_PASSWORD ) or die(mysql_error());
        $this->database = mysqli_select_db( DB_DATABASE ) or die(mysql_error());
    

    function close() 
        mysqli_close( $this->connection );
    

注意:

在您的代码中,一行中有两次or die(...)

【讨论】:

【参考方案2】:

使用它来关闭错误报告

写在页面顶部

error_reporting(E_ERROR | E_WARNING | E_PARSE);

这里是更多信息的链接

http://www.w3schools.com/php/func_error_reporting.asp

【讨论】:

【参考方案3】:

因为你用的是mysql,所以没用,已经折旧,把mysql全部改成mysqli。这是您的代码的编辑版本。

 <?php

/**
* A class file to connect to database
*/
class DB_CONNECT 

// constructor
function __construct() 
    // connecting to database
    $this->connect();


// destructor
function __destruct() 
    // closing db connection
    $this->close();


/**
 * Function to connect with database
 */
function connect() 
    // import database connection variables
    require_once __DIR__ . '/db_config.php';

    // Connecting to mysql database
    $con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysqli_error());

    // Selecing database
    $db = mysqli_select_db(DB_DATABASE) or die(mysqli_error());

    // returing connection cursor
    return $con;


/**
 * Function to close db connection
 */
function close() 
    // closing db connection
    mysqli_close();




?>

【讨论】:

我相信这不是原因。 你试过了吗?你是第一个没有尝试就投反对票的人。 是的,我收到了警告,但我得到了一个有效的连接。正如我所写,这不是问题。我发布了该问题的正确答案。

以上是关于如何在这段代码中在 PHP 中使用 mysqli的主要内容,如果未能解决你的问题,请参考以下文章

php代码安全性问题

在 PHP 中,啥对应于 MySQLi 中的 mysql.connect_timeout?

PHP - MySQLi 处理查询两次或错误

php的MySQL使用

PHP 无法在服务器上运行

在这段代码中,如何使用 notify 调用 wait() 调用?