php三种方式操作mysql数据库
php可以通过三种方式操作数据库,分别用mysql扩展库,mysqli扩展库,和mysqli的预处理模式分别举案例加以说明
<?php
class SqlTool{
private $conn = null;
private $host = "localhost";
private $username = "root";
private $password = "254416";
function __construct(){
$this->conn = mysql_connect($this->host,$this->username,$this->password);
if(!$this->conn){
die("数据库链接失败".mysql_error());
}
//选择数据库
mysql_select_db("test") or die("数据库不存在".mysql_error()) ;
//设置编码
mysql_set_charset ( "utf8",$this->conn);
//mysql_query("set names utf8");
}
function execute_dql($sql){
$res = mysql_query($sql,$this->conn);
if(!$res){
die("数据查询失败");
}else{
return $res;
}
}
function execute_dml($sql){
$res = mysql_query($sql,$this->conn);
if(!$res){
echo mysql_error();
return -1;
}else{
if(mysql_affected_rows($this->conn)>0){
return 1;
}else{
return 0;
}
}
}
} ?>
<?php
class SqlTool{
private $host = "localhost";
private $username = "root";
private $password = "254416";
private $db = "test";
private static $mysqli = null;
function __construct(){
//新建链接
self::$mysqli = new MySQLi($this->host,$this->username,$this->password,$this->db);
if(self::$mysqli->connect_error){
die("数据库连接失败".self::$mysqli->connect_error);
}
//设置编码
self::$mysqli->set_charset("utf8");
}
function execute_dql($sql){
$res = self::$mysqli->query($sql);
return $res;
}
function queryfiledname($sql){
$filedname = self::$mysqli->query($sql);
return $filedname;
}
function execute_dml($sql){
$b = self::$mysqli->query($sql);
if(!$b){
return -1;
}else{
if(self::$mysqli->affected_rows>0){
return 1;
}else{
return 0;
}
}
}
}
?>
<?php
header("Content-type: text/html;charset=utf-8");
//建立链接
$mysqli = new MySQLi("localhost","root","254416","test");
$sql = "insert into user (username,password,email,address,age) values (?,?,?,?,?)";
//设置编码
$mysqli->query("SET NAMES utf8");
//数据库预处理
$mysqli_stmt = $mysqli->prepare($sql) or die("数据库预处理失败");
//绑定参数
$name="小倩";
$password = "123";
$email = "xiaoqian@suhu.com";
$address = "郑州";
$age = 20;
$mysqli_stmt->bind_param("ssssi",$name,$password,$email,$address,$age) or die("绑定参数失败");
//执行
$b = $mysqli_stmt->execute();
if(!$b){
die("预处理执行失败");
}
echo "添加成功";
$mysqli_stmt->close();
?>
处理dql语句:
<?php
header("Content-type: text/html;charset=utf-8");
$mysqli = new MySQLi("localhost","root","254416","test");
$mysqli->query("set names utf8");
$sql="select * from user where id>?";
$mysqli_stmt = $mysqli->prepare($sql) or die("数据库预处理失败");
$id=20;
$mysqli_stmt->bind_param("i",$id) or die("参数绑定失败");
$mysqli_stmt->bind_result($id,$username,$password,$email,$address,$age) or ("绑定结果集失败");
$b = $mysqli_stmt->execute();
if(!$b){
die("数据库预处操作理失败");
}
while($mysqli_stmt->fetch()){
echo "--$id--$username";
}
$mysqli_stmt->free_result();
$mysqli_stmt->close();
$mysqli->close();
?>
php三种方式操作mysql数据库的更多相关文章
- php连接MySQL数据库的三种方式(mysql/mysqli/pdo)
引言 PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案 ...
- JavaEE系列之(三)JDBC操作MySQL数据库
一.JDBC简介 JDBC(Java Data Base Connectivity)java数据库连接 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库 ...
- 不使用spring的情况下原生java代码两种方式操作mongodb数据库
由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常. 主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...
- 三种方法查看MySQL数据库的版本
1.使用-V参数 首先我们想到的肯定就是查看版本号的参数命令,参数为-V(大写字母)或者--version 使用方法: D:\xampp\mysql\bin>mysql -V 或者 D:\xam ...
- 用EF的三种方式(SqlServer数据库和Oracle数据库)
SqlServer数据库 1.DB First 现有DB,生成edmx文件 贴一下生成的model //------------------------------------------------ ...
- 【OpenCV】三种方式操作图像像素
OpenCV中,有3种访问每个像素的方法:使用at方法.使用迭代器方法.使用指针 运行如下程序后可以发现使用at方法速度最快. 代码如下: //操作图像像素 #include <opencv2/ ...
- php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库
1.使用php的MySQL扩展库操作MySQL数据库: php有3种方式操作MySQL数据库 (1)mysql扩展库 (2)mysqli扩展库 (3)pdo mysql扩展库与mysql数据库 ...
- 【tips】ORM - SQLAlchemy操作MySQL数据库
优先(官方文档SQLAlchemy-version1.2): sqlalchemy | 作者:斯芬克斯 推荐一(长篇幅version1.2.0b3):python约会之ORM-sqlalchemy | ...
- 使用zabbix监控mysql的三种方式
使用zabbix监控mysql的三种方式 1.只是安装agent 2.启用模板监控 3.启用自定义脚本的模板监控 zabbix中默认有mysql的监控模板.默认已经在zabbix2.2及以上的版本中. ...
随机推荐
- 09SpringAopAdvice
Spring原生的经典模式 实现 AOP 通知: 前置通知:在目标方法执行之前执行,不能改变方法的执行流程和结果! 实现 MethodBeforeAdvice接口! 后置通知:在目标方法执行之后执行, ...
- iOS 面试常问之多线程
本片围绕多线程全面展开叙述. 1.为什么要有多线程/多线程是用来干什么的? 2.多线程是什么? 3.如何创建多线程? 4.多线程在哪些情况下会使用/多线程使用场景? 5.三种多线程的优缺点? 6.线程 ...
- filter配置多个url-pattern和排除个别servlet
转载自:https://blog.csdn.net/hanghangde/article/details/51298221 侵删 最近做项目遇到一个Filter需要配置多个url-pattern,上网 ...
- 关于vue-resource 转变成axios的过程
在做东钿贷后系统的时候,我选择了vue-resource这个插件作为与服务器沟通工具,但是听说前端同行说vuejs2.0已经不在维护vue-resource了,vuejs2.0 已经使用了axios了 ...
- ECShop怎么首页调用文章列表
举例如首页调用方法:1.先打开index.php文件找到以下代码:$smarty->assign('new_articles', index_get_new_articles()); // 最新 ...
- 1、http简介
HTTP 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传 ...
- linux命令行—《命令行快速入门》
pwd print working directory 打印工作目录 hostname my computer's network name 电脑在网络中的名称 mkdir make director ...
- 织梦channel标签内调用子栏目内容
文件:include\taglib\channel.lib.php 把代码 SELECT id,typename,typedir,isdefault,ispart,defaultname,nameru ...
- layout_weight属性
layout_weight 某个控件text多行,第一行对齐,baselineAligned = "false" 可使控件对齐 weight 计算规则 剩余尺寸=父布局尺寸-子布局 ...
- uvm_reg_backdoor——寄存器模型(十)
寄存器有前门和后门两种访问方式,这儿只看后门访问方式 //----------------------------------------------------------------------- ...