Php连接MySQL(Mariadb)|| HTTP500

介绍

想要实现在网页端对数据库进行连接、进而读写数据库,然后发现HTTP500,最后php测试发现是php无法连接mysql数据库

  • 缺乏连接插件
  • 数据库用户没有对应的host连接权限(%有的时候并不包含localhost,建议额外加上localhost)

mysql连接方式

mysqli

$conn=mysqli_connect("localhost","root","","d1");

这是第4个参考中出现的方式,第一眼我以为它写错了。。然后默默把mysqli_connect改成了mysql_connect。。。。然后还是HTTP500无法处理

//参数解释,第一个可以是IP地址,不过运行在服务端了自然是本地
$conn=mysqli_connect("localhost","用户名","密码","数据库名");

示例代码

tsqli.php

<?php
//tsqli.php
$servername = "localhost";
$username = "username";	//用户名
$password = "password";	//密码

// 创建连接
$conn = new mysqli($servername, $username, $password);

// 检测连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
$conn->close();
?>

可以在服务端测试运行测试

# php tsqli.php

测试成功就会输出Connected successfully;失败自然是failed

mysql

Warning
本扩展自 PHP 5.5.0 起已废弃,并在自 PHP 7.0.0 开始被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。参见 MySQL:选择 API 指南以及相关 FAQ 来获取更多信息。

$db = mysql_connect("localhost","root","123") 

参见第三篇引用,这个参数设置和上一个一样,最后我还是出现了HTTP500

tsql.php

<?php
//tsql.php
$servername = "localhost";
$username = "username";	//用户名
$password = "password";	//密码

// 创建连接
$conn = mysql_connect($servername, $username, $password);

// 检测连接
if (!$conn) {
    die("Connection failed: " . mysql_error());
}
echo "Connected successfully";
?>

可以在服务端测试运行测试

# php tsql.php

测试成功就会输出Connected successfully;失败自然是Connection failed

PDO

PHP 5 及以上版本建议使用以下方式连接 MySQL :

MySQLi extension (“i” 意为 improved)
PDO (PHP Data Objects)
在 PHP 早起版本中我们使用 MySQL 扩展。但该扩展在 2012 年开始不建议使用。

安装PDO

安装PDO

# yum install php-pdo
# yum install php-mysql

安装支持mysql的插件

示例代码

tpdo.php

<?php
//tpdo.php
$servername = "localhost";
$username = "username";		//用户名
$password = "password";	 //密码

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>

可以在服务端测试运行测试

# php tpdo.php

测试成功就会输出Connected successfully;失败自然是failed

错误参考

1.Class ‘PDO’ not found
没有安装PDO,参考上面的安装
2.SQLSTATE[42000] [1044] Access denied for user ‘Admin’@‘localhost’ to database ‘–’
数据库用户Admin权限不够,换root或者给Admin加权
3.could not find driver
没有安装PDO-mysql插件

参考

  • https://blog.csdn.net/weixin_44353970/article/details/89430552
  • https://blog.csdn.net/qq_28766327/article/details/51058378
  • https://blog.csdn.net/rongwenbin/article/details/39965745
  • https://blog.csdn.net/weixin_44353970/article/details/89430552
  • https://www.w3cschool.cn/php/php-mysql-connect.html
  • https://www.fujieace.com/php/ould-not-find-driver.html
  • http://pecl.php.net/package/PDO_MYSQL
  • https://www.php.net/manual/zh/book.pdo.php
  • https://www.php.net/mysql_query
### 测试 PHP 连接 MariaDB 的方法 为了验证 PHP 是否能够成功连接MariaDB 数据库,在 CentOS 系统中可以通过创建一个简单的 PHP 脚本来实现。以下是具体的操作过程: #### 1. 创建测试文件 在 `/var/www/html/` 或其他配置好的 Web 根目录下,创建一个新的 PHP 文件 `test_db.php`。 ```bash vi /var/www/html/test_db.php ``` #### 2. 编写 PHP 测试脚本 将以下代码粘贴至该文件中,并保存退出编辑器。 ```php <?php $host = 'localhost'; // 数据库主机地址 $username = 'your_username'; // 替换为您的数据库用户名 $password = 'your_password'; // 替换为您的数据库密码 $dbname = 'your_database'; // 替换为您要连接的数据库名称 try { $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置错误模式为异常处理 echo "连接成功!"; // 如果连接成功,则显示此消息 } catch (PDOException $e) { die("无法连接到数据库:" . $e->getMessage()); // 若发生错误则捕获并显示错误信息 } ?> ``` 上述代码通过 PHP 的 `PDO` 扩展尝试建立与 MariaDB连接[^3]。如果一切正常运行,页面会返回 “连接成功!”;如果有任何问题(例如凭据不正确),它将抛出相应的错误提示。 #### 3. 启动服务 确保 HTTPD 和 MariaDB 服务均已启动并且正在运行。 ```bash systemctl start httpd systemctl enable httpd systemctl start mariadb systemctl enable mariadb ``` #### 4. 访问测试页 打开浏览器访问 URL 地址 `http://<server-ip>/test_db.php` (其中 `<server-ip>` 是服务器的实际 IP 地址)。如果看到“连接成功”的字样,则说明 PHP 已经可以顺利地同 MariaDB 建立通信关系[^4]。 注意:完成测试之后建议删除这个公开可访问的敏感文件以防止潜在安全风险。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值