php连接数据库的三种方式

介绍三种php链接数据库的方式,我们平时使用框架时不会接触到,可以具体了解一下

mysql

在高版本php中已经找不到了,我下面的测试代码使用的php5.3内置mysql模块

<?php

$conn = mysql_connect('localhost', 'root', 'root');
$db = mysql_select_db('test');
if (!$db) die('conn db err');

$sql = 'select * from test limit 2';

$result = mysql_query($sql);

if (!$result) die('not found');

while (1) {
    $row = mysql_fetch_assoc($result);
    if (!$row)break;
    var_dump($row);
}
$insert_sql = 'insert into `test` (`age`, `name`) VALUES ("18", "new")';

$result = mysql_query($insert_sql);
var_dump(mysql_affected_rows());
var_dump(mysql_insert_id());

die;

上执行结果图

mysqli

基于mysql的修改一下,改动不大,只有基础需要带参数,实例化的链接。

<?php

$conn = mysqli_connect('localhost', 'root', 'root');
$db = mysqli_select_db($conn, 'test');
if (!$db) die('conn db err');

$sql = 'select * from test limit 2';

$result = mysqli_query($conn, $sql);

if (!$result) die('not found');

while (1) {
    $row = mysqli_fetch_assoc($result);
    if (!$row)break;
    var_dump($row);
}
$insert_sql = 'insert into `test` (`age`, `name`) VALUES ("18", "new")';

$result = mysqli_query($conn, $insert_sql);
var_dump(mysqli_affected_rows($conn));
var_dump(mysqli_insert_id($conn));

die;

执行结果相同就不上图了,

pdo

<?php
//指定编码格式
$_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2,PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8');

$db = new PDO("mysql:host=localhost;dbname=test", 'root', 'root', $_opts_values );
if (!$db) die('conn db err');

$sql = 'select * from test limit 2';

$result = $db->query($sql);
if (!$result) die('not found');

var_dump($result->fetchAll());
die;

输出结果

总结

简单说一下这三种方式的差别吧。

  1. mysqli是mysql的新版高版本的php中已经不带有mysql了,仅在php5.3用的多
  2. mysqli很强大,支持事务,多语句执行,预处理语句,存储过程等
  3. mysqli的缺点就是只支持mysql其他数据库不支持
  4. pdo支持多数据库,基本可以实现无缝切换数据库
  5. pdo的确定就是有一些语句执行不了

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 HTML 页面,可以实现借书功能,并通过 PHP 链接数据库实现数据的存储。需要注意的是,这个页面只是一个示例,需要根据实际情况进行修改和完善。 ```html <!DOCTYPE html> <html> <head> <title>借书功能</title> </head> <body> <h1>借书功能</h1> <form action="borrow.php" method="post"> <label for="book_id">图书编号:</label> <input type="text" id="book_id" name="book_id"><br><br> <label for="user_id">用户编号:</label> <input type="text" id="user_id" name="user_id"><br><br> <input type="submit" value="借书"> </form> </body> </html> ``` 在上面的 HTML 页面中,我们定义了一个表单,包含图书编号和用户编号两个输入框,以及一个提交按钮。当用户输入完毕后,点击提交按钮,表单数据会被发送到 `borrow.php` 文件进行处理。 下面是 `borrow.php` 文件的代码: ```php <?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取表单数据 $book_id = $_POST["book_id"]; $user_id = $_POST["user_id"]; // 查询图书是否可借 $sql = "SELECT * FROM books WHERE id = $book_id AND status = 'available'"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 更新图书状态 $sql = "UPDATE books SET status = 'borrowed', borrower = $user_id WHERE id = $book_id"; if ($conn->query($sql) === TRUE) { echo "借书成功!"; } else { echo "借书失败!"; } } else { echo "该图书不可借!"; } $conn->close(); ?> ``` 在上面的代码中,我们首先通过 `mysqli` 类连接到 MySQL 数据库。然后获取表单数据,查询图书是否可借,如果可借,则更新图书状态为借出状态,并记录借阅者的用户编号;否则,返回错误信息。最后,关闭数据库连接。 需要注意的是,上面的代码只是一个示例,实际使用中需要根据具体情况进行修改和完善,比如增加数据验证、错误处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值