php连接数据库,php连接mysql并查询的几种方式,PHP PDO连接以及预处理
PHP连接数据库 面向过程
$config = [
'host'=>'127.0.0.1', //数据库地址
'name'=>'test', //库名
'user'=>'root', //数据库用户名
'pass'=>'root' //数据库密码
];
$db = mysqli_connect($config['host'],$config['user'],$config['pass'],$config['name']);
if(!$db)
{
die('数据库连接失败,请检查配置信息:' . mysqli_connect_error());
}
//设置数据库编码格式 或者说指定了客户端和服务器之间传递字符的编码规则为UTF8
mysqli_query($db,"set names utf8");
//进行数据查询 比如我要查询user表内所有用户的Id,name
//封装一下sql语句
$sql = 'select Id,name form user';
//把查询结果放到变量里面 或者说把查询成功后返回的资源标识符放到变量 $row
$row = mysql_query($db,$sql);
//判断是否为空,为空则查询失败
if(empty($row))
{
die("查询数据失败");
}
//判断查询结果是否为0条
if(mysqli_num_rows($row) > 0)
{
//把查询结果打印出来
while($row = mysqli_fetch_assoc($result))
{
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
}
PHP连接数据库 面向对象
$config = [
'host'=>'127.0.0.1', //数据库地址
'name'=>'test', //库名
'user'=>'root', //数据库用户名
'pass'=>'root' //数据库密码
];
//连接数据
$db = new mysqli($config['host'],$config['user'],$config['pass'],$config['name']);
//判断数据库是否连接失败
if($db->errno > 0)
{
die("数据库连接失败" . $db->error);
}
//如上面那个 写sql语句
$sql = "select Id,name form user";
//把查询结果放到变量里
$con = $db->query($sql);
//判断查询结果是否为0
if($con->num_rows >0)
{
//打印查询结果
while($row = $con->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
}
PHP连接数据 PDO以及预处理
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
//定义一个类,方便一会打印
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
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";
}
} $servername = "127.0.0.1"; //数据库地址
$username = "root"; //用户名
$password = "root"; //数据库密码
$dbname = "test"; //数据库库名
//使用异常处理来获取错误信息
try {
//先new PDO类并把数据库配置传入进去
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
//设置错误级别
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//把sql语句传入
$stmt = $conn->prepare("SELECT Id,name FROM user");
//执行
$stmt->execute();
// 设置结果集为关联数组
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
//通过foreach 和RecursiveIteratorIterator 把查询结果给打印出来
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
//如果捕捉到错误就打印出错误信息
echo "PDO错误: " . $e->getMessage();
}
$conn = null;
echo "</table>";
php连接数据库,php连接mysql并查询的几种方式,PHP PDO连接以及预处理的更多相关文章
- 【mysql模糊查询的几种方式】
select * from activyty_code where acname like '%yj%' 1:%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分 ...
- 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串
第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...
- Mysql查看版本号的五种方式介绍
Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03 一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...
- mysql级联更新的两种方式:触发器更新和外键
1.mysql级联更新有两种方式:触发器更新和外键更新. 2.触发器更新和外键更新的目的都是为了保证数据完整性. 我们通常有这样的需求:删除表Table 1中记录,需要同时删除其它表中与Table 1 ...
- MyBatis实现模糊查询的几种方式
在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...
- [Mysql]查看版本号的五种方式
[Mysql]查看版本号的五种方式 目录(?)[+] 查看版本信息 #1 使用命令行模式进入mysql会看到最开始的提示符 Your MySQL connection id is 3Serve ...
- mysql实现分页的几种方式
mysql实现分页的几种方式: 第一种:使用框架自带的pageable来进行分页 package com.cellstrain.icell.repository.repositoryImpl; imp ...
- MySQL查看版本号的五种方式介绍1111111
MySQL查看版本号的五种方式介绍 1 命令行模式登录MySQL [root@localhost ~]# mysql -uroot -p Enter password: Welcome to the ...
- mysql复制表的两种方式
mysql复制表的两种方式. 第一.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 或者 create table 新表 like 旧表 第二 ...
随机推荐
- 2020ubuntu1804server编译安装redis5笔记(二)配置redis
前一篇笔记记录了ubuntu1804server编译安装redis5,接下来要配置redis5了 网址:https://www.cnblogs.com/qumogu/p/12435694.html 第 ...
- JAVA生成EXCEL模板
JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...
- 在vue中实现锚点定位功能
场景如下: 今天早上看到需求方新提的一个需求,这是一份网上答卷,点击题数要实现滚动到对应题目的位置: 注意点:每题题目的高度是不受控制的,你可以取到想跳转的index:(我再循环题目时做了index+ ...
- 通过js自动判断移动终端设备(ios\android等)
当用户用移动设备扫描一个二维码是,将扫描后的链接链接到一个页面,该页面只包含判断移动终端设备的js,判断好后自动跳转到对应的链接 或下载对应的内容. html代码如下: <script> ...
- ATOMac - 基于Python的Mac应用Ui自动化库
ATOMacTest 一.缘 起 近期工作需要对一款Mac端应用实现常用功能的自动化操作,同事推荐ATOMac这款工具,这几天简单研究了下,同时也发现现网介绍ATOMac的资料非常有限,故在此记录下A ...
- 数字逻辑与EDA设计
目录 第一章 数字逻辑基础 1.1数制与码制★★★ 数制 码制 1.2基本及常用的逻辑运算★★ 1.2逻辑函数表示方法★★ 1.3逻辑函数的化简★★★ 1.4常用74HC系列门电路芯片★ 第二章 组合 ...
- Vue中使用echarts,ajax请求的远程数据赋值给图表不刷新的问题和解决办法
问题: vue-cli搭建的项目,在mounted钩子函数里面创建echarts图表,本地模拟数据可以正常显示,但是当将ajax请求的远程数据赋值给图表时,图表并不会刷新. 解决办法: 刚开始以为是v ...
- springboot使用swagger2创建文档
一.导入swagger2依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...
- 北邮oj 97. 二叉排序树
97. 二叉排序树 时间限制 1000 ms 内存限制 65536 KB 题目描述 二叉排序树,也称为二叉查找树.可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 若左子树非空,则左子树上所有节 ...
- python绘图设置标题、标签,无法显示中文
先说解决办法:在程序开始之前,引入使用的模块之后,添加如下代码: plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unico ...