介绍
想要实现在网页端对数据库进行连接、进而读写数据库,然后发现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