PHP MySQL & PDO
来源:互联网 发布:什么是网络推广专员 编辑:程序博客网 时间:2024/05/18 07:47
这个厉害了,PDO可以连接12种不同的数据库,但是因为电脑只装了MySQL,Access似乎没有驱动,所以只有MySQL的例子了。
Note:要使用PDO这个类还要将驱动安装上,就是修改你PHP安装目录下的 php.ini 文件,直接Ctrl+F 查找
extension=php_pdo.dll
将它前面的分号去掉! 这一步在PHP 5.3或更高版本中不是必须的。然后把具体数据库DLL前面分号也去掉。对于这些扩展功能,我建议全部都去掉前面的分号,说不定以后用的着。
还有重要一点是,重启你的PHP服务,这些东西才会生效!!!!
extension=php_pdo.dllextension=php_pdo_firebird.dllextension=php_pdo_informix.dllextension=php_pdo_mssql.dllextension=php_pdo_mysql.dllextension=php_pdo_oci.dllextension=php_pdo_oci8.dllextension=php_pdo_odbc.dllextension=php_pdo_pgsql.dllextension=php_pdo_sqlite.dll
<html><body> <h2>PDO 连接数据库</h2> <?php // PDO 方式操作适用多种数据库 PDO 应用在 12 种不同数据库中 $servername = "localhost"; $username = "root"; $password = ""; $myDb = "mydbPDO"; try { // 创建MySQL链接对象 $conn = new PDO("mysql:host=$servername;dbname=$myDb", $username, $password); echo "连接成功!"; } catch (PDOException $e) { echo $e -> getMessage(); } ?> <h2>创建数据库</h2> <?php try { // 设置 PDO 错误模式为异常 $conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "create database " . $myDb; // 使用exec(),因为没有结果返回 // $conn -> exec($sql); echo "数据库创建成功!<br>"; echo "<h2>新建表</h2>"; $sql2 = "create table myGuests ( id int(6) unsigned auto_increment primary key, firstname varchar(30) not null, lastname varchar(30) not null)"; // 执行 sql 语句 // $conn -> exec($sql2); echo "数库表 myGuests 创建成功!"; echo "<h2>插入 数据 </h2>"; //$sql3 = "insert into myGuests (id, firstname, lastname) values (0,'Json','Doe')"; // $sql3 = "insert into myGuests (id, firstname, lastname) values (0,'范','玮琪')"; // 插入 // $sql3 = "delete from myGuests where firstname = 'John0'"; // 删除 $sql3 = "update myGuests set firstname = 'John0' where id = 5"; // 更新 $conn -> exec($sql3); echo "插入数据成功!"; echo "<h2>插入多条数据</h2>"; // 开始事务 $conn -> beginTransaction(); // sql语句 for ($i = 0; $i < 5; $i++) { // $conn -> exec("insert into myGuests (id, firstname, lastname) values (0, 'John$i','Deo')"); } // 提交事务 $conn -> commit(); echo "新记录插入成功"; } catch (PDOException $e) { // 如果执行失败回滚 $conn -> rollback(); echo "<br>" . $e -> getMessage(); } ?> <h2>预处理语句</h2> <?php try { $conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql4 = "insert into myGuests(firstname, lastname) values (:firstname, :lastname)"; // 预处理 sql 并绑定参数 $stmt = $conn -> prepare($sql4); $stmt -> bindParam(':firstname', $fname); $stmt -> bindParam(':lastname', $lname); // 插入行 $fname = "MD"; $lname = "EF"; // $stmt -> execute(); // 插入其他行 $fname = "Mary"; $lname = "Moe"; // $stmt -> execute(); echo "插入新记录成功!"; } catch (PDOException $e) { echo "ERROR:" . $e -> getMessage(); } ?> <h2>PDO+(预处理)</h2> <?php echo "<table style='border: solid 1px black;'>"; echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>"; /** * */ class TableRows extends RecursiveIteratorIterator // 继承递归迭代器 { // 加一个下划线的函数为私有的 // 加两个下划线的函数一般都是系统默认的,系统预定义的 包括 __construct、__destruct、__clone、__toString // __construct 构造方法,当一个对象创建时调用此方法 function __construct($it) { // ::引用类里面的静态方法或者属性,而且不需要实例化! // parent::__construct 调用父类的 __construct 方法 // self 表示调用自身 parent::__construct($it, self::LEAVES_ONLY); } function current() { return "<td style='width:150px; border:1px solid black;''>" . parent::current() . "</td>"; } function beginChildren() { echo "<tr>"; } function endChildren() { echo "</tr>" . "\n"; } } try { $conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt2 = $conn -> prepare('select id, firstname, lastname from myGuests'); $stmt2 -> execute(); // 设置结果集为关联数组 $result = $stmt2 -> setFetchMode(PDO::FETCH_ASSOC); // print_r($stmt2 -> fetchAll()); foreach (new TableRows(new RecursiveArrayIterator($stmt2 -> fetchAll())) as $key => $value) { echo $value; } } catch (PDOException $e) { echo "ERROR" . $e -> getMessage(); } echo "</table>"; ?> <?php // 关闭连接 这好习惯要有 $conn = null; ?></body> </html>
阅读全文
0 0
- php mysql PDO使用
- php PDO连接MySql
- php mysql PDO使用
- php PDO连接mysql
- pdo+mysql+php
- php mysql PDO使用
- php mysql PDO使用
- php PDO mysql
- php mysql PDO封装
- php PDO mysql问题解决
- PHP PDO操作MYSQL
- PHP PDO操作MYSQL
- PHP MySQL & PDO
- PHP PDO(mysql) 封装类
- PHP PDO操作使用MySql
- centos php pdo-mysql扩展
- php pdo 连接MySQL数据库
- php pdo链接mysql数据库
- 关于Python对简单的web框架flask的应用使得不只是本机而是局域网都能访问
- 富互联网应用体系结构
- 利用js改变htmll的属性
- react native 环境搭建 报错
- Java程序性能优化 读书笔记(十)并行设计模式:Future模式
- PHP MySQL & PDO
- C#多线程中通过lock实现线程同步
- 每日练习20171031
- 解决python装插件时找不到vcvarsall.bat问题
- socket详解
- Linux PRVF-0002 : Could not retrieve local nodename 错误的解决办法
- Java-编程思想之对象
- AOSP 安卓源码6.0编译-模拟器运行
- 数据结构专题——线性表之顺序表及其Java实现