Mysql_pconnect替代方案,以便工作

时间:2016-04-16 19:48:37

标签: php mysql mysql-pconnect

所以我知道不推荐使用mysql_pconnect,有没有办法实现这个功能,我有一个旧脚本,在连接文件中有以下内容:

$success = mysql_pconnect ($mysql_host, $mysql_user, $mysql_password);
if (!$success)
    die ("<b>Cannot connect to database, check if username, password and host are correct.</b>");
$success = mysql_select_db ($database);
if (!$success) {
    print "<b>Cannot choose database, check if database name is correct.";
    die();
}

我有替代方案吗?

// LE

try {
    $success = new PDO("mysql:host=$mysql_host;dbname=$database", $mysql_user, $mysql_password, array(PDO::ATTR_PERSISTENT=>true));
} catch (PDOException $e) {
    die ("<b>Cannot connect to database, check if username, password and host are correct.</b>");
}

$success = mysql_select_db ($database);
if (!$success) {
    print "<b>Cannot choose database, check if database name is correct.";
    die();
}

这给了我&#34;无法选择数据库,检查数据库名称是否正确。&#34;

3 个答案:

答案 0 :(得分:0)

您可以使用mysqli但是现在建议使用PDO进行查询和纯PHP。

$connect = new mysqli($host, $user, $password, $db;
$r = $connect->query('SELECT ...');
$rows = $r->fetch_array(MYSQLI_NUM);

答案 1 :(得分:0)

直接来自mysql_pconnect docs

警告    此扩展在PHP 5.5.0中已弃用,并且已在PHP 7.0.0中删除。 相反,应该使用MySQLi或PDO_MySQL扩展。 另请参见MySQL:选择API指南和 相关常见问题解答了解更多信息。

**此功能的替代方案包括:

mysqli_connect() with p: host prefix

PDO::__construct()public function run() { $user = new User; $user->name = 'John Doe'; $user->email = 'john@gmail.com'; $user->password = 'password'; $user->save(); } 作为驱动程序选项**

答案 2 :(得分:-1)

mysql_pconnect函数创建与数据库的持久连接。要使用PDO(在PHP中访问数据库的推荐方法),可以执行此操作:

try {
    $conn = new PDO("mysql:host=$mysql_host;dbname=$database", $mysql_user, $mysql_password, array(PDO::ATTR_PERSISTENT=>true));
} catch (PDOException $e) {
    die ("<b>Cannot connect to database, check if username, password and host are correct.</b>");
}

请注意,使用PDO时,不需要调用mysql_select_db(也不推荐使用)。使用PDO,数据库是DSN(PDO构造函数的第一个参数)的一部分。实际上,您需要使用等效的PDO方法替换对mysql_ *函数的每个调用。