分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

PHP学习(四)

发布时间:2023-09-06 01:32责任编辑:沈小雨关键词:PHP

Database

在 php5 之前,推荐使用的方式是例如 php_mysql.dll/php_psql.dll 等原生驱动。

比如, php_mysql.dll 的语法如下:

// 首先,设置页面编码header("Content-Type: text/html; charset=UTF8");// 其次,建立数据库连接$conn = mysql_connect("localhost", "root", "root") or die("数据库连接失败");// 创建数据库if(mysql_query("create database xxx", $con)) { ???echo "创建数据库成功。";} else { ???echo "创建数据库失败:" . mysql_error() . "<br>";}// 切换到数据库mysql_select_db("xxx") or dir("打卡数据库失败。");// 设置 utf8 编码mysql_query("select names utf8");// 创建表$sql = "create table person( ?id int primary key auto_increment, ?name varchar(20) not null, ?salary float default 1500)";mysql_query($sql);// 插入数据mysql_query("insert into person (name, salary) values (‘张飞‘, 3333)");mysql_query("insert into person (name, salary) values (‘关羽‘, 3334)");// 查询数据// 返回结果是:万能的数组$res = mysql_query("select * from person");// 显示数据,使用 foreach 循环echo "<table>\n";foreach($res as $r) { ???echo " ?<tr><td>$r[name]</td><td>$r[salary]</td></tr>\n";}echo "\n</table>";// 最后,释放连接mysql_close($conn);

因为 mysql 插件有很多问题,所以,后来出现了 php_mysqli.dll 插件,其中 i 代表 improvement(改进/升级) 的意思,对连接数据库的效率及安全性进行了大量优化。

mysqli 插件除了完全兼容 mysql 的语法之外,还支持用 oo 的方式连接数据库:

// 连接数据库$conn = new mysqli("localhost", "root", "root", "text");$conn -> query("set names utf8");// 查询$sql = $conn->query("select * from person");// 获取结果$res = $conn->fetch_array(MYSQLI_ASSOC);// 显示结果echo "<table>\n";echo "<tr><td>" . $res[‘name‘] . "</td><td>" . $res[‘salary‘] . "</td></tr><br>";echo "</table>";

虽然 mysqli 插件已经非常好用。但是…

php 能连接的数据库可不止 mysql 啊,还有 oracle/sqlserver/postgres/sqlite 等,每个数据库都有自己的插件,都有自己的语法…所以后来,PHP 推出了自己的连接数据库的标准, 即 PDO(PHP Data Object) 接口,对数据库的连接进行了规范。所以,采用 DPO 的所有数据库,语法得到了统一:

// 连接数据库$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "root", "test");// 操作数据库n$pdo->exec("set names utf8");$pdo->exec("create table person ...") or die("创建失败");$pdo->exec("insert into ?person ...") echo and ("插入成功");// query$st = $pdo->query("select xxx from yyy");$rows = ?$st->fetch(PDO::FETCH_ASSOC);print_r($rows);// 使用 Prepare 的方式进行操作$stmt = $pdo->prepare("select name from person where id = :id");$stmt->bindParam(":id", $xxx, PDO::PARAM_INT);$stmt = $stmt->execute();$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);print_r($rows);// 释放链接$pdo = null;

PHP学习(四)

原文地址:https://www.cnblogs.com/Mingsnow/p/8127388.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved