【WordPress报错Fatal error: Uncaught Error: Call to undefined function mysql_connect()】
这个错误是因为在WordPress中使用了已经被废弃的mysql_connect()函数,从PHP 5.5.0开始,mysql_connect()函数就被废弃了,建议使用mysqli或PDO扩展来连接MySQL数据库,本文将详细介绍如何解决这个问题,并提供两个与本文相关的问题及其解答。
问题1:如何在WordPress中使用mysqli扩展连接MySQL数据库?
答:需要在wp-config.php文件中添加以下代码,以启用mysqli扩展:
define('MYSQLI_ROOT', __DIR__ . '/'); require(MYSQLI_ROOT . 'wp-admin/includes/upgrade.php'); require(MYSQLI_ROOT . 'wp-admin/includes/functions.php'); require(MYSQLI_ROOT . 'wp-admin/includes/plugin.php'); require(MYSQLI_ROOT . 'wp-admin/includes/theme.php'); require(MYSQLI_ROOT . 'wp-admin/includes/admin.php');
接下来,可以使用以下代码创建一个mysqli连接:
$servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功";
问题2:如何在WordPress中使用PDO扩展连接MySQL数据库?
答:需要在wp-config.php文件中添加以下代码,以启用PDO扩展:
require_once(ABSPATH . 'wp-admin/includes/pdo-install.php');
接下来,可以使用以下代码创建一个PDO连接:
try { $pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置 PDO 错误模式为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "连接成功"; } catch(PDOException $e) { echo "连接失败: " . $e->getMessage(); }
相关问题与解答
1、为什么不再推荐使用mysql_*函数?
答:因为mysql_*函数已经被废弃,官方建议使用mysqli或PDO扩展,这是因为mysql_*函数存在一些安全隐患,如SQL注入等,而mysqli和PDO扩展提供了更安全、更灵活的方式来操作数据库。
2、如何判断一个PHP函数是否被废弃?
答:可以查看PHP官方文档或者使用function_exists()函数来判断,要判断mysql_connect()函数是否被废弃,可以使用以下代码:
if (!function_exists('mysql_connect')) { echo "mysql_connect()函数已被废弃"; } else { // 继续使用mysql_connect()函数的操作 }
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/232705.html