0

所以我知道 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();
}

这给了我“无法选择数据库,请检查数据库名称是否正确。”

4

3 回答 3

0

直接来自mysql_pconnect 文档

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

**此功能的替代品包括:

mysqli_connect() 与p:主机前缀

PDO::__construct()PDO::ATTR_PERSISTENT作为驱动程序选项**

于 2016-04-16T19:55:14.797 回答
0

mysqli但是PDO,现在建议您使用它来进行查询和普通 php。

$connect = new mysqli($host, $user, $password, $db;
$r = $connect->query('SELECT ...');
$rows = $r->fetch_array(MYSQLI_NUM);
于 2016-04-16T19:53:07.160 回答
-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_* 函数的每次调用。

于 2016-04-16T20:02:49.843 回答