PHP连接MySQL数据库操作代码实例解析


Posted in PHP onJuly 11, 2020

方法一:普通方法(面向过程)

首先,先做出如下假设(也适用与方法二和方法三)

$username=your_name;
 $userpass=your_pass;
 $dbhost=localhost;
 $dbdatabase=your_database;

下面是关键步骤:

//生成一个连接
$db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!");

//选择一个需要操作的数据库
mysql_select_db($dbdatabase,$db_connect);

//执行MySQL语句
$result=mysql_query("SELECT id,name FROM user");

//提取数据
$row=mysql_fetch_row($result);

//关闭链接
mysql_close($db_connect);

代码注释已经说明了一切。不过这里还需要做一些补充。

①在mysql_connect()、mysql_select_db()等函数之前使用@(错误控制运算符),可以忽略掉系统产生的错误信息,然后我们用die()来自定义错误信息;

②提取数据的时候,除了上面的mysql_fetch_row,常见的还有mysql_fetch_assoc和mysql_fetch_array,具体差别请查阅我的另一篇随笔《PHP中mysql_fetch_row()、mysql_fetch_assoc()和mysql_fetch_array()的联系》;

③对于mysql_query()函数的返回值,如果执行的语句有返回值(如SELECT、SHOW、DESCRIBE等),则返回相应数据(成功时)或FALSE(失败时);如果执行的语句没有返回值(如DELETE、DROP、INSERT、UPDATE等),则返回TRUE(成功时)或FALSE(失败时)。

方法二:面向对象方法

其实这种方法和普通方法非常类似,只是把相应的函数换成了面向对象方法,直接看代码。

$db=new mysqli($dbhost,$username,$userpass,$dbdatabase);
if(mysqli_connect_error()){
  echo 'Could not connect to database.';
  exit;
}

$result=$db->query("SELECT id,name FROM user");
$row=$result->fetch_row();

这里用到的是mysqli,意思就是mysql的扩展,既可以通过面向过程的方式也可以通过面向对象的方式与数据库进行交互,唯一不同的是调用函数(对象方法)的方式不一样。

方法三:PDO方法

PDO其实是PHP Database Objects的缩写,中文即PHP数据库对象。它提供了一种统一的PHP与数据库交互的方法。

这是目前比较流行的一种连接数据库的方法。它的优势在于:只要正确提供数据源,余下对于数据库的基本操作都是一样的。也就是说,同一段代码既可以同MySQL交互,也可以和SQLite3交互,当然也可以和PostgreSQL进行交互,前提是你提供了正确的数据源。下面看一下连接MySQL的代码:

$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';'
$dbh=new PDO($dsn,$username,$userpass);

如果是SQLite3,直接使用下面的代码:

$dsn='sqlite3:"C:\sqlite\user.db"';
$dbh=new PDO($dsn);

如果是PostgreSQL,下面的代码能够对付:

$dsn='pgsql:host='.$dbhost.' port=5432 dbname='.$dbdatabase.' user='.$username.' password='.$userpass;
$dbh=new PDO($dsn);

跟数据库成功建立连接之后,下面就只需要从数据库获取数据或插入更新数据,实例代码如下:

$stmt=$dbh->query('SELECT id,name FROM user');
$row=$stmt->fetch();

至此,文章告一段落。当然,上面只是简单的介绍了一下PHP与数据库有关的最简单的操作,后面还有很多比如插入、排序、防止SQL注入等等一些方面的知识需要深入学习。希望有机会能够和大家一起探讨,共同进步。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
PHP多例模式介绍
Jun 24 PHP
php跨域cookie共享使用方法
Feb 20 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
php将金额数字转化为中文大写
Jul 09 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
php封装的smarty类完整实例
Oct 19 PHP
php版微信小店调用api示例代码
Nov 12 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
php服务器的系统详解
Oct 12 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 #PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
Jul 10 #PHP
PHP实现简易用户登录系统
Jul 10 #PHP
PHP二维数组分页2种实现方法解析
Jul 09 #PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 #PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 #PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 #PHP
You might like
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
初学Javascript的一些总结
2008/11/03 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
vue实现计步器功能
2019/11/01 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
SQL Server数据库笔试题和答案
2016/02/04 面试题
介绍一下Linux文件的记录形式
2013/09/29 面试题
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
超市业务员岗位职责
2013/12/05 职场文书
批评与自我批评材料
2014/02/15 职场文书
综合内勤岗位职责
2014/04/14 职场文书
公司合作协议范文
2014/10/01 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android