0

0

用PDO操作MySQL数据库

不言

不言

发布时间:2018-04-23 10:05:12

|

2076人浏览过

|

来源于php中文网

原创

这篇文章介绍的内容是关于用PDO操作MySQL数据库,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下


先建立数据库。复制代码到TXT文件,然后另存为'建立数据库.txt' 最后修改为'建立数据库.sql',最后用navicat运行数据库文件。就建好数据库了。

代码如下:

CREATE TABLE `user` (  
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  
  `name` varchar(25) NOT NULL DEFAULT '',  
  `gender` tinyint(1) NOT NULL DEFAULT '1',  
  `age` int(11) NOT NULL DEFAULT '0',  
  `flag` tinyint(1) NOT NULL DEFAULT '1',  
  PRIMARY KEY (`id`)  
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;  
  
/*Data for the table `user` */  
  
insert  into `user`(`id`,`name`,`gender`,`age`,`flag`) values (1,'allen',1,20,1),(2,'alice',2,18,1),(3,'bob',1,21,1),(4,'dave',1,25,1),(5,'eve',2,20,1),(6,'joy',1,21,1),(7,'june',1,23,1),(8,'linda',2,22,1),(9,'lisa',2,22,1),(10,'liz',2,23,1);

然后新建php文件。pdo.php

 '127.0.0.1',         //设置服务器地址  
    'port' => '3306',              //设端口   
    'dbname' => 'test',             //设置数据库名        
    'username' => 'root',           //设置账号  
    'password' => 'yangji0321',      //设置密码  
    'charset' => 'utf8',             //设置编码格式  
    'dsn' => 'mysql:host=127.0.0.1;dbname=test;port=3306;charset=utf8',   //这里不知道为什么,也需要这样再写一遍。  
);  
  
//连接  
$options = array(  
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //默认是PDO::ERRMODE_SILENT, 0, (忽略错误模式)  
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 默认是PDO::FETCH_BOTH, 4  
);  
  
try{  
    $pdo = new PDO($db['dsn'], $db['username'], $db['password'], $options);  
}catch(PDOException $e){  
    die('数据库连接失败:' . $e->getMessage());  
}  
  
//或者更通用的设置属性方式:  
//$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    //设置异常处理方式  
//$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);   //设置默认关联索引遍历  
  
echo '
';  
  
//1 查询  
  
//1)使用query  
$stmt = $pdo->query('select * from user limit 2'); //返回一个PDOStatement对象  
  
//$row = $stmt->fetch(); //从结果集中获取下一行,用于while循环  
$rows = $stmt->fetchAll(); //获取所有  
  
$row_count = $stmt->rowCount(); //记录数,2  
print_r($rows);  
  
  
  
  
  
  
  
echo '
'; //2)使用prepare 推荐! $stmt = $pdo->prepare("select * from user where name = ? and age = ? "); $stmt->bindValue(1,'allen'); $stmt->bindValue(2,20); $stmt->execute(); //执行一条预处理语句 .成功时返回 TRUE, 失败时返回 FALSE $rows = $stmt->fetchAll(); $row_count = $stmt->rowCount(); //记录数,2 print_r($rows); print_r($row_count); echo '
'; //2 新增、更新、删除 //A.1)普通操作 //$count = $pdo->exec("insert into user(name,gender,age)values('test',2,23)"); //返回受影响的行数 //echo $pdo->lastInsertId(); //$count = $pdo->exec("update user set name='test2' where id = 15"); //返回受影响的行数 //$count = $pdo->exec("delete from user where id = 15"); //返回受影响的行数 //A.2)使用prepare 推荐! $stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)"); $stmt->bindValue(1, 'test'); $stmt->bindValue(2, 2); $stmt->bindValue(3, 23); $stmt->execute(); $count = $stmt->rowCount();//受影响行数 echo 'prepare方法影响行数:'.$count; echo '
'; //A.3)使用prepare 批量新增 $stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)"); $stmt->bindParam(1, $name); $stmt->bindParam(2, $gender); $stmt->bindParam(3, $age); $data = array( array('t1', 1, 22), array('t2', 2, 23), ); foreach ($data as $vo){ list($name, $gender, $age) = $vo; $stmt->execute(); } //B)更新操作 echo '
'; $stmt = $pdo->prepare("UPDATE `user` SET `age`=? WHERE (`name`= ? )"); $stmt->bindValue(1, '20'); $stmt->bindValue(2, 'allen'); $num = $stmt->execute(); $count = $stmt->rowCount();//受影响行数 echo '更新操作影响行数:'.$count; //删除操作 $stmt = $pdo->prepare("DELETE FROM `user` WHERE (`name`= ? )"); $stmt->bindValue(1, 't1'); $num = $stmt->execute(); $count = $stmt->rowCount();//受影响行数 echo '删除操作影响行数:'.$count; # 【示例5:统计数据】:统计company表有多少条数据 echo '
'; $num = $pdo->query("select count(*) from user"); $count = $num->fetchColumn(); echo '共有数据:【'.$count.'】条'; ?> pdo::query()方法 当执行返回结果集的select查询时,或者所影响的行数无关紧要时,应当使用pdo对象中的query()方法. 如果该方法成功执行指定的查询,则返回一个PDOStatement对象. 如果使用了query()方法,并想了解获取数据行总数,可以使用PDOStatement对象中的rowCount()方法获取. pdo::exec()方法 当执行insert,update,delete没有结果集的查询时,使用pdo对象中的exec()方法去执行. 该方法成功执行时,将返回受影响的行数.注意,该方法不能用于select查询. PDO事务: $pdo->beginTransaction();//开启事务处理 try{ //PDO预处理以及执行语句... $pdo->commit();//提交事务 }catch(PDOException $e){ $pdo->rollBack();//事务回滚 //相关错误处理 throw $e; }

相关推荐:

PHP数据库基于PDO操作类(mysql)

Notion AI
Notion AI

Notion是一款集成了笔记、知识库、数据表格、看板、日历等多种能力于一体的应用程序,它既可供个人使用,也可以与他人进行跨平台协作。

下载

PDO一次查询一行数据

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2020

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1339

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1244

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

948

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1402

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1231

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1440

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1303

2023.11.13

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.6万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 779人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号