PHP系列(十二)数据库抽象层pdo

简介:

1、数据库抽象层pdo

(1)PDO(php data object)扩展类库为php访问数据库定义了轻量级的、一致性的接口它可以支持mysql,postgresql,oracle,mssql等多种数据库

(2). PDO的安装

编辑php.ini文件:

 extension=php_pdo.dll

 extension=php_pdo_mysql.dll

重启apache服务:

 httpd k restart

打开phpinfo.php查看是否有pdo

 

2、创建pdo对象

Oracle

/*连接如果失败,使用异常处理模式进行捕获 */

try{

$dbh = newPDO("OCI:dbname=accounts;charset=UTF-8", "scott","tiger");

}catch(PDOException$e) {

echo "数据库连接失败: " .$e->getMessage();

}

Mysql

$dsn ='mysql:dbname=testdb;host=127.0.0.1'; //连接MySQL数据库的DSN

$user = 'dbuser';//MySQL数据库的用户名

$password ='dbpass'; //MySQL数据库的密码

try {

$dbh = newPDO($dsn, $user, $password);

} catch(PDOException $e) {

echo '数据库连接失败: ' . $e->getMessage();

}

 

Php.ini配置文件中[pdo]下在加入下面文字

Pdo.dsn.ssw=”mysql:host=localhosot;dbname=malldb”;

try {

$dbh = new PDO(ssw,root, sswqzx);

} catch(PDOException $e) {

echo '数据库连接失败: ' . $e->getMessage();

}

 

//设置持久连接的选项数组作为最后一个参数,可以一起设置多个元素

$opt =array(PDO::ATTR_PERSISTENT => true);

try {

$db = newPDO('mysql:host=localhost;dbname=test''dbuser''passwrod',$opt);

} catch(PDOException $e) {

echo "数据库连接失败: " .$e->getMessage();

}

 

3PDO与连接有关的选项

         try {

                   $pdo=new  PDO("mysql:host=localhost;dbname=malldb","root","123456",array(PDO::ATTR_AUTOCOMMIT=>false,PDO::ATTR_PERSISTENT=>1 ));

         }catch(PDOException $e) {

                   echo "数据库连接失败:".$e->getMessage();

                   exit;

         }

//var_dump($pdo);

//      $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,false);

 

         echo "<br>PDO是否关闭自动提交功能:".$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);

         echo "<br>当前PDO的错误处理的模式:". $pdo->getAttribute(PDO::ATTR_ERRMODE);

         echo "<br>表字段字符的大小写转换: ".$pdo->getAttribute(PDO::ATTR_CASE);

         echo "<br>与连接状态相关特有信息: ".$pdo->getAttribute(PDO::ATTR_CONNECTION_STATUS);

         echo "<br>空字符串转换为SQLnull". $pdo->getAttribute(PDO::ATTR_ORACLE_NULLS);

         echo "<br>应用程序提前获取数据大小:".$pdo->getAttribute(PDO::ATTR_PERSISTENT);

         echo "<br>与数据库特有的服务器信息:".$pdo->getAttribute(PDO::ATTR_SERVER_INFO);

         echo "<br>数据库服务器版本号信息:".$pdo->getAttribute(PDO::ATTR_SERVER_VERSION);

         echo "<br>数据库客户端版本号信息:".$pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);

 

4PDO的错误处理模式

/*

setAttribute();

PDO::ATTR_ERRMODE;

1、默认的错误模式(不提示、我们看到问题、被忽视)

2、警告模式:PDO::ERRMODE_WARNING

3、异常的模式:PDO::ERRMODE_EXCEPTION

*/

 

try(

//创建对象

$pdo = newPDO("mysql:host=localhost;dbname=malldb","root","sswqzx");

//设置错误使用异常的模式

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

)catch(PDOException $e){

         echo"数据库链接失败".$e->getMessage();

         exit;

}

 

try(

//使用PDO中的方法执行语句

$affected_rows = $pdo ->exec("delete from hello");

)catch(PDOException $e){

echo "错误".$e->getMessage();

}

 

5、使用PDO执行SQL语句

代码1

/*

PDO中执行SQL语句的方法有二个主要的:

1exec() 用来处理非结果集的: insert updatedelete create ....

返回影响的函数

2query() 用来处理有结果集的语句: select descshow

 

set naees utf8;

$pdo -> query("set namesutf8");

$pdo -> exec("set namesutf8");

*/

 

try{

//创建对象

$pdo = new PDO("mysql:host=localhost;dbname=malldb","root","sswqzx");

//设置错误使用异常的模式

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

}catch(PDOException $e){

         echo"数据库链接失败".$e->getMessage();

         exit;

}

 

try{

//使用PDO中的方法执行语句

$affected_rows = $pdo ->exec("insert into user(name,pass,sex,age,email)values('aa','bb','cc','20','ee@qq.com')");

echo $affected_rows."<br>";

echo $pdo->lastinsertid();

}catch(PDOException $e){

echo "错误".$e->getMessage();

}

代码2

<?php

try{

$dbh = newPDO('mysql:dbname=testdb;host=localhost', 'mysql_user', 'mysql_pwd');

}catch(PDOException$e){

exit('数据库连接失败:'.$e->getMessage());

}

$query = UPDATE contactInfo SET phone=15801680168 where name=‘高某某’”;

//使用exec()方法可以执行INSERTUPDATEDELETE

$affected =$dbh->exec($query);

if($affected){

echo '数据表contactInfo中受影响的行数为:'.$affected;

}else{

print_r($dbh->errorInfo());

}

代码3

<?php

$dbh = newPDO('mysql:dbname=testdb;host=localhost', 'mysql_user', 'mysql_pwd');

$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$query =

"SELECT name,phone, email FROM contactInfo WHERE departmentId='D01'";

try {

//执行SELECT查询,并返回PDOstatement对象              

$pdostatement =$dbh->query($query);

echo "一共从表中获取到".$pdostatement->rowCount()."条记录:\n";

foreach($pdostatement as $row) {//PDOstatement对象中遍历结果

echo $row['name'] ."\t"; //输出从表中获取到的联系人的名字

echo $row['phone']. "\t"; //输出从表中获取到的联系人的电话

echo $row['email']. "\n";//输出从表中获取到的联系人的电子邮件

}

} catch(PDOException $e) {

echo$e->getMessage();

}

6PDO事务处理

MySQL的事务处理

事务:将多条sql操作(增删改)作为一个操作单元,要

么都成功,要么都失败。

MySQL对事务的支持:

被操作的表必须是innoDB类型的表(支持事务)

 MySQL常用的表类型:MyISAM(非事务)增删改速度快、

InnodB(事务型)安全性高

更改表的类型为innoDB类型

mysql> altertable stu engine=innodb;

Query OK, 29 rowsaffected (0.34 sec)

Records: 29Duplicates: 0 Warnings: 0

mysql> showcreate table stu\G; //查看表结构

事务处理

Mysql> set autocommit = 0;

mysql>start transaction;

Mysql>commit;

Mysql>roolback;

7、构建事务处理的应用程序

开启一次事务:

 $pdo->beginTransaction();

提交一次事务:

 $pdo->commit();

回滚一次事务:

 $pdo->rollback();

注意如下设置:

1.$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);

2.$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);

代码:

<?php

/*

 * PDO中执行SQL语句的方法有两个主要的:

 *

 *    1.  exec()   用来处理非结果集的  insert update deletecreate ....

 *

 *      返回影响的函数

 *

 *      如果是插入语句可以使用lastinsertid()方法获取最后自动插入id

 *

 *

 *    2.  query()   用来处理有结果集的语句  select   desc show

 *

 *   返回来的是 PDOStatement类的对象,再通过这个类的方法,获取结果。也可以直接foreach遍历获取结果(但不常用)

 *

 *    setnames utf8;

 *

 *   $pdo -> query("set names utf8");

 *   $pdo -> exec("set names utf8");

 */

 

         try{

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   //关闭自动提交

                   $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                   //开启一个事务

                   $pdo-> beginTransaction();

 

                   $price= 50;

                   //妹子转出50

                   $affected_rows= $pdo-> exec("update demo set ye=ye-{$price} where id=1");

 

                   if($affected_rows> 0) {

                            echo"妹子转出{$price}元成功!<br>";

                   }else {

                            thrownew PDOException("妹子转出失败!<br>");

                   }

 

                   //张三会收到50

                   $affected_rows= $pdo-> exec("update demo set ye=ye+{$price} where id=3");

 

                   if($affected_rows){

                            echo"张三收到{$price}元成功!";

                   }else{

                            thrownew PDOException("张三收入失败!<br>");

                   }

 

        

                   echo"交易成功!<br>";

 

                  //提交以上的操作

                   $pdo->commit();     

 

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

                   echo"交易失败!<br>";

                   //撤销所有操作

                   $pdo-> rollback();

         }

 

         //运行完成以后, 最后开启自动提交

         $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);

8、使用PDO准备语句并执行语句

得到pdo预处理对象的方法:

$sql=select * from user order by id;

$sth=$pdo->prepare($sql);

以上代码中的$sth即为预处理对象

PDO中参数式的SQL语句有两种(预处理sql)

1.insert intostu(id,name) value(?,?); //?号式(适合参数少的)

2.insert intostu(id,name) value(:id,:name);//别名式(适合参数多的)

代码1

         try{

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                   //给数据库管理系统并直接执行

                   //$pdo-> query("select * from users");

                  

                   //只是将这个语句放到服务器上(数据库管理系统)上编写后等待,没有执行

                   $stmt= $pdo -> prepare("insert into users(name, pass, age, sex, email)values(?, ?, ?, ?, ?)");

 

                   //绑定参数(?),将问号和一个变量关联起来

                   $stmt-> bindParam(1, $name);

                   $stmt-> bindParam(2, $pass);

                   $stmt-> bindParam(3, $age);

                   $stmt-> bindParam(4, $sex);

                   $stmt-> bindParam(5, $email);

 

                   //给变量一个值, 就会给准好的语句中的对应?一个值

                   $name= "admin";

                   $pass= "hello";

                   $age= 100;

                   $sex= "nnn";

                   $email= "aaa@bbb.com";

                   //执行上面在数据库系统中准备好的语句

                   $stmt-> execute();

        

 

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

 

代码2:

         try {

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                   //给数据库管理系统并直接执行

                   //$pdo-> query("select * from users");

                  

                   //只是将这个语句放到服务器上(数据库管理系统)上编写后等待,没有执行

                   $stmt= $pdo -> prepare("insert into users(name, pass, age, sex, email)values(:name, :pass, :age, :sex, :email)");

 

                   //绑定参数(?),将问号和一个变量关联起来

                   $stmt-> bindParam("name", $name, PDO::PARAM_STR);

                   $stmt-> bindParam("pass", $pass, PDO::PARAM_STR);

                   $stmt-> bindParam("age", $age, PDO::PARAM_INT);

                   $stmt-> bindParam("sex", $sex, PDO::PARAM_STR);

                   $stmt-> bindParam("email", $email, PDO::PARAM_STR);

 

                   //给变量一个值, 就会给准好的语句中的对应?一个值

                   $name= "admin1";

                   $pass= "hello1";

                   $age= 1001;

                   $sex= "nnn1";

                   $email= "aaa@bbb.com1";

                   //执行上面在数据库系统中准备好的语句

                   $stmt-> execute();

        

 

 

                  //给变量一个值, 就会给准好的语句中的对应?一个值

                   $name= "admin2";

                   $pass= "hello2";

                   $age= 1002;

                   $sex= "nnn2";

                   $email= "aaa@bbb.com2";

                   //执行上面在数据库系统中准备好的语句

                   $stmt-> execute();                      

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

代码3

         try{

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                   //给数据库管理系统并直接执行

                   //$pdo-> query("select * from users");

                  

                   //只是将这个语句放到服务器上(数据库管理系统)上编写后等待,没有执行

              //  $stmt = $pdo -> prepare("insert into users(name, pass, age, sex,email) values(:name, :pass, :age, :sex, :email)");

                $stmt = $pdo -> prepare("insertinto users(name, pass, age, sex, email) values(?, ? ,?, ?, ?)");

 

 

                $stmt -> execute(array("jone",'123456', 18, 'nv', 'aa@bb.com'));       

                $stmt -> execute(array("jone2",'123456', 18, 'nv', 'aa@bb.com'));       

                $stmt -> execute(array("jone22",'123456', 18, 'nv', 'aa@bb.com'));       

 

 

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

 

代码4

         try{

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                   //给数据库管理系统并直接执行

                   //$pdo-> query("select * from users");

                  

                   //只是将这个语句放到服务器上(数据库管理系统)上编写后等待,没有执行

$stmt = $pdo -> prepare("insertinto users(name, pass, age, sex, email) values(:name, :pass, :age, :sex,:email)");

// $stmt = $pdo -> prepare("insertinto users(name, pass, age, sex, email) values(?, ? ,?, ?, ?)");

$stmt ->execute(array("name"=>"feng","pass"=>"abc123#", "age"=>28,"sex"=>"nan","email"=>"aaa@bbb.com"));       

    

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

 

代码5

 

         try{

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                   //给数据库管理系统并直接执行

                   //$pdo-> query("select * from users");

                  

                   //只是将这个语句放到服务器上(数据库管理系统)上编写后等待,没有执行

                 $stmt = $pdo -> prepare("insertinto users(name, pass, age, sex, email) values(:name, :pass, :age, :sex,:email)");

               // $stmt = $pdo ->prepare("insert into users(name, pass, age, sex, email) values(?, ? ,?, ?,?)");

 

 

                $stmt -> execute($_GET);               

               

 

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

 

9PDO的预处理查询

代码1

         try{

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                  

                   $stmt= $pdo -> prepare("select id, name, age, sex, email from users where id> ? and id < ?");

                   $stmt-> execute(array(500, 800));

 

        

                   foreach($stmtas $row) {

                            print_r($row);

                            echo'<br>';

                   }

 

                   //mysql_fetch_array()   mysql_fetch_rows  mysql_fetch_array()

/*

                   echo'<table border="1" width=800>';

                   while(list($id,$name, $age, $sex, $email) = $stmt -> fetch(PDO::FETCH_NUM)) {

                            echo'<tr>';

                            echo'<td>'.$id.'</td>';

                            echo'<td>'.$name.'</td>';

                            echo'<td>'.$age.'</td>';

                            echo'<td>'.$sex.'</td>';

                            echo'<td>'.$email.'</td>';

                            echo'</tr>';

                   }

 

                   echo'</table>';

 */           

 

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

代码2

 

try {

                   //创建对象

                  $pdo = newPDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                  

                   $stmt= $pdo -> prepare("select id, name, age, sex, email from users where id> ? and id < ?");

                   $stmt-> execute(array(500, 800));

 

 

                   //可以设置结果的模式以下的代码使用fetch()fetchAll()都是使用这个方面设置的数组的格式

                   $stmt-> setFetchMode(PDO::FETCH_NUM);

 

 

                   echo'<pre>';

 

                   print_r($stmt->fetchAll());

 

                   echo'</pre>';

 

                   //mysql_fetch_array()   mysql_fetch_rows mysql_fetch_array()

/*

                   echo'<table border="1" width=800>';

                   while(list($id,$name, $age, $sex, $email) = $stmt -> fetch(PDO::FETCH_NUM)) {

                            echo'<tr>';

                            echo'<td>'.$id.'</td>';

                            echo'<td>'.$name.'</td>';

                            echo'<td>'.$age.'</td>';

                            echo'<td>'.$sex.'</td>';

                            echo'<td>'.$email.'</td>';

                            echo'</tr>';

                   }

 

                   echo'</table>';

 */           

 

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

 

代码:

         try{

                   //创建对象

                   $pdo= new PDO("mysql:host=localhost;dbname=malldb", "root","123456");

                   //设置错误使用异常的模式

                   $pdo-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                   $pdo-> query("set names utf8");

         }catch(PDOException$e) {

                   echo"数据库连接失败:".$e->getMessage();

                   exit;

         }

 

 

         try{

                  

                   $stmt= $pdo -> prepare("insert into users(name, pass, age, sex,email)values(?, ? ,? ,? ,?)");

                   $stmt-> execute(array('111', '222', 333, '444', '555'));

 

                   //获取数据结果中的行数或如果是影响函数的语句执行则获取的是影响行数

                   echo$stmt->rowCount();

 

                   echo'<br>';

                   //如何获取最后一个自动增涨的ID?

                   echo$pdo -> lastInsertId();

         }catch(PDOException$e) {

                   echo"错误:".$e->getMessage();

         }

 

本文转自 sswqzx 51CTO博客,原文链接:http://blog.51cto.com/sswqzx/1973083


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
数据库连接 应用服务中间件 PHP
|
存储 SQL 关系型数据库
PHP与数据库交互:从基础到进阶
【10月更文挑战第9天】在编程的世界里,数据是流动的血液,而数据库则是存储这些珍贵资源的心脏。PHP作为一门流行的服务器端脚本语言,其与数据库的交互能力至关重要。本文将带你从PHP与数据库的基本连接开始,逐步深入到复杂查询的编写和优化,以及如何使用PHP处理数据库结果。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技巧,让你在PHP和数据库交互的道路上更加从容不迫。
|
9月前
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
236 16
|
10月前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
410 25
|
9月前
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
|
9月前
|
Ubuntu PHP 数据库
|
9月前
|
PHP 数据库
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
|
11月前
|
关系型数据库 MySQL API
新手教程:数据库操作(使用PDO或MySQLi扩展)
本文为新手介绍如何使用PDO和MySQLi扩展连接与操作MySQL数据库。PDO更现代灵活,支持多种数据库,适合大多数应用;MySQLi提供面向过程和面向对象两种API,适合直接控制数据库操作。教程涵盖安装配置、创建连接、执行查询(查询、插入、更新、删除)及错误处理等内容。希望这篇教程能帮助你快速上手PHP中的数据库操作!
347 32
|
SQL PHP 数据库
19 PHP如何利用PDO获取结果集
路老师在知乎上分享了关于PHP语言的知识,帮助大家入门并深入了解PHP。本文介绍了PDO中获取结果集的三种方法:`fetch()`、`fetchAll()` 和 `fetchColumn()`,并通过具体案例展示了如何使用这些方法从数据库中获取数据并展示在网页上。
463 5
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
324 1