当前位置: 首页 > news >正文

php使用url连接mysql_3种通过php连接mysql的方法

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

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

下面是关键步骤:

1 //生成一个连接 2 $db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!"); 3 4 //选择一个需要操作的数据库 5 mysql_select_db($dbdatabase,$db_connect); 6 7 //执行MySQL语句 8 $result=mysql_query("SELECT id,name FROM user"); 9 10 //提取数据 11 $row=mysql_fetch_row($result);

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

②提取数据的时候,除了上面的mysql_fetch_row,常见的还有mysql_fetch_assoc和mysql_fetch_array,具体差别请查阅PHP Manual;

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

方法二:面向对象方法

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

1 $db=new mysqli($dbhost,$username,$userpass,$dbdatabase); 2 if(mysqli_connect_error()){ 3 echo 'Could not connect to database.'; 4 exit; 5 } 6 7 $result=$db->query("SELECT id,name FROM user"); 8 $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();

相关文章:

  • qt mysql分页显示_qt mysql 分页
  • mysql操纵对象_MySQL数据库的对象操作
  • python数据类型转换教学_python数据类型转换
  • 分页插件怎么实现不跳转页面进入下一页_jQuery分页跳转插件
  • mysql中的集中日期格式,MySQL中的特定日期格式
  • mysql数据库的小数类型_mysql数据库小数类型
  • python showinfo 方法_Python+PyQt5实现美剧爬虫可视工具的方法
  • python增加工作日列_在python中添加迄今为止的工作日
  • 网易java面试_网易Java面试:容易被问到的这些面试题
  • 有向图最短路径 java_Dijkstra算法-寻找有向图中最短路径
  • 什么是java枚举类型_java枚举类型
  • java弹出图片_Java对话框上显示图片
  • java date获取24点_android中在java代码中获得每日,每周,每月的0点和24点的时间戳
  • java mutilcatch_Java中的Multicatch,不同的catch块 - Break易站
  • java hashtable线程安全_基础才是重中之重~线程安全的Hashtable
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • express如何解决request entity too large问题
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Mac转Windows的拯救指南
  • overflow: hidden IE7无效
  • Python_OOP
  • spark本地环境的搭建到运行第一个spark程序
  • vue中实现单选
  • 笨办法学C 练习34:动态数组
  • 反思总结然后整装待发
  • - 概述 - 《设计模式(极简c++版)》
  • 高度不固定时垂直居中
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 理清楚Vue的结构
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 每天一个设计模式之命令模式
  • 排序算法之--选择排序
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 入门级的git使用指北
  • 说说动画卡顿的解决方案
  • 小程序 setData 学问多
  •  一套莫尔斯电报听写、翻译系统
  • 怎么把视频里的音乐提取出来
  • 追踪解析 FutureTask 源码
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • (12)目标检测_SSD基于pytorch搭建代码
  • (31)对象的克隆
  • (39)STM32——FLASH闪存
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (理论篇)httpmoudle和httphandler一览
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)jdk与jre的区别
  • (转载)虚函数剖析
  • .net 7 上传文件踩坑
  • .Net MVC + EF搭建学生管理系统
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net6使用Sejil可视化日志