使用PDO连接数据库
PDO(PHP数据对象) 是一个轻量级的、具有兼容接口的PHP数据连接拓展,是一个PHP官方的PECL库,随PHP 5.1发布,需要PHP 5的面向对象支持,因而在更早的版本上无法使用。它所提供的数据接入抽象层,具有与具体数据库类型无关的优势,为它所支持的数据库提供统一的操作接口。目前支持多种数据库等。由于PDO是在底层实现的统一的数据库操作接口,因而利用它能够实现更高级的数据库操作,比如存储过程的调度等。
创建数据库配置文件config.php
<?php
define('DB_HOST','localhost');//常量,主机名
define('DB_USER','root');//连接数据库的用户名
define('DB_PWD','root');//连接数据库密码
define('DB_NAME','book');//数据库名称
define('DB_PORT','');//端口号
define('DB_TYPE','mysql');//数据库的类型
define('DB_CHARSET','utf8');//数据库的编码格式
define('DB_DSN',DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);//定义PDO的DSN
?>
创建index.php文件,用于连接数据库,执行查询语句,并引入config.php文件
<?php
require "config.php"; try{
//连接数据库,选择数据库
$pdo = new PDO(DB_DSN,DB_USER,DB_PWD);
} catch (PDOException $e){
//输出异常信息
echo $e->getMessage();
} $query = "select * from books where id=?";//sql语句
$sth = $pdo->prepare($query);//准备执行
$sth->execute(array(1));//执行查询语句,并返回结果集 //var_dump($sth->fetchColumn(1));
//var_dump($sth->fetchColumn(1));
//$res = $sth->fetch(PDO::FETCH_OBJ);
include("lists_02.html");
创建list.html文件,显示查询信息。
<!DOCTYPE html>
<html lang="en" class="is-centered is-bold">
<head>
<meta charset="UTF-8">
<title>连接数据库</title>
<link href="css/bootstrap.css" rel="stylesheet">
<style>
#name,#id{
width: 200px;
margin-top: 10px;
}
</style>
</head>
<body>
<div class="container" style="padding-top: 20px">
<div class="col-sm-offset-2 col-sm-8">
<div class="panel panel-default">
<div class="panel-heading">
图书列表
</div>
<div class="panel-body">
<table class="table table-striped task-table">
<thead>
<tr>
<th>ID</th>
<th>书姓</th>
<th>作者</th>
<th>价格</th>
<th>出版日期</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<!--$getData数组的值也是数组-->
<?php while ($res = $sth->fetch(PDO::FETCH_OBJ)){ ?>
<tr>
<td class="table-text">
<?php echo $res->id ?>
</td>
<td class="table-text">
<?php echo $res->name ?>
</td>
<td class="table-text">
<?php echo $res->author ?>
</td>
<td class="table-text">
<?php echo $res->price ?>
</td>
<td class="table-text">
<?php echo $res->publishDate ?>
</td>
<td class="table-text">
<button type="button" class="btn btn-primary">编辑</button>
<button type="button" class="btn btn-danger">删除</button>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div> </div>
</div>
</div>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</body>
</html>
使用PDO连接数据库的更多相关文章
- 【转】php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)
原文链接:http://blog.csdn.net/ysydao/article/details/11002295 PHP 用pdo连接数据库时出现中文乱码问题解决办法 1.array(PDO::MY ...
- PDO连接数据库
PDO连接数据库 PDO简介和配置 php.ini extension=php_pdo.dll extension=php_pdo_myysql.dll PDO连接MYSQL new PDO(&quo ...
- 使用PDO连接数据库 查询和插入乱码的解决方法
问题:PDO连接数据库后,查询和插入中文到数据库,出现乱码,如图: 解决方法: 法1: try{ $opts_values = array(PDO::MYSQL_ATTR_INIT_COMMAND=& ...
- PHP5中使用PDO连接数据库的方法
PDO(PHP Data Object) 是PHP 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,php_my ...
- php PDO连接数据库
[PDO是啥] PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll.php_pgsql.d ...
- php+mysql+pdo连接数据库
1.$pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");/ ...
- 封装PDO连接数据库代码
废话不说直接上代码: <?php class DB { protected static $_connect; protected $dsn, $pdo; protected $_data, $ ...
- pdo 连接数据库 报错 could not find driver 解决方法
在windows 下,调试一个PHP程序时,报了这个错误, could not find driver 原来我的这个程序中用到了PDO对象, 连接mysql 5. 在PHP的默认设置中,只打开了ph ...
- PHP5中使用PDO连接数据库
PDO 如何连接 new PDO("mysql:host=localhost;dbname=php100","root", “ "); 默认这个不是 ...
随机推荐
- [考试反思]0907NOIP模拟测试39:角落
题比较简单,但是做的非常烂. T1是个愚蠢的找规律组合数快速幂,数组开小了(看错数据范围) T2题目保证联通没看见,hack掉了正解. T3也挺蠢的,但是打乱了,思路不是很清晰导致丢了50分. 只能说 ...
- Scrapy爬取豆瓣图书数据并写入MySQL
项目地址 BookSpider 介绍 本篇涉及的内容主要是获取分类下的所有图书数据,并写入MySQL 准备 Python3.6.Scrapy.Twisted.MySQLdb等 演示 代码 一.创建项目 ...
- 【Java实践】Kettle从一次实验说起
一,安装Kettle 1,关于简易安装Kettle 第一次接触kettle(以前只是听过罢了),摸索了几天,在mac源码安装失败,转而快速安装.在mac上安装最新版kettle并成功启动代码如下: ☁ ...
- China .NET Conf 2019-.NET技术架构下的混沌工程实践
这个月的8号.9号,个人很荣幸参加了China.NET Conf 2019 , 中国.NET开发者峰会,同时分享了技术专题<.NET技术架构下的混沌工程实践>,给广大的.NET开发小伙伴介 ...
- java多线程与线程并发三:线程同步通信
本文章内容整理自:张孝祥_Java多线程与并发库高级应用视频教程. 有些时候,线程间需要传递消息,比如下面这道面试题: 子线程循环10次,然后主线程循环100次,然后又回到子线程循环50次,然后再回到 ...
- 使用Rider中搭建specflow+xunit+selenium对web页面进行自动化功能测试环境
运行rider,创建测试解决方案,选择xunit,点击create创建 导入包,由于本人使用chrome浏览器(需先下载好对应的浏览器驱动),所以导入了selenium.webdriver.c ...
- nyoj 45-棋盘覆盖 (高精度, Java)
棋盘覆盖 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...
- django:runserver实现远程访问
如果是在另一台电脑上web访问要用 python manage.py ip:port (一般使用8000)的形式:监听所有ip用0.0.0.0如下: 1 2 3 python manage.py ru ...
- HTML基础学习心得分享
开始学些Html的时候主要进行一些简单的静态网页的处理: 1.HTML 标题 HTML 标题(Heading)是通过 h1-h6 加中括号<>等标签进行定义的. 2.HTML 段落 HTM ...
- SIGCHLD waitpid, 小心子进程结束事件被偷了
原本项目中依赖子进程执行的地方,都使用jni调用java层的ProcessManager,换了c++ACE框架后,发现这些任务都很慢,调试才发现所有子进程执行的任务都必须等待到reactor超时才返回 ...