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及以上的版本中. ...
随机推荐
- RHEL6.4 安装 highpoint RocketRAID 2720 阵列卡驱动
step1:下载驱动程序. http://www.highpoint-tech.com/USA_new/series_rr272x_configuration.htm step2:上传驱动程序至服务器 ...
- 读取jar包内的文件内容
package com.chanpion.boot; import org.springframework.util.ResourceUtils; import java.io.File; impor ...
- 小米OJ刷题日志
虽然这OJ上的题比较水,但还是挺有意思的.关键是能赚钱 特别是提交方式 居然不支持C++,垃圾OJ 4. 最长连续数列 排序后dp 5. 找出旋转有序数列的中间值 写个排序就做完了. 6. 交叉队列 ...
- 1068 乌龟棋 2010年NOIP全国联赛提高组
1068 乌龟棋 2010年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Descrip ...
- vuejs 学习旅程之 vue-resource
如上图,所有的数据是从php获取过来的.所以就引出了vuejs 与php通信之说.百度了一下需要使用到一个vue插件 就是今天的主题 vuejs 学习旅程之 vue-resource vue-reso ...
- 前端HTML以及HTML5(基本标签)
前面一章介绍了一下前端的发展,这章简单介绍一下html的发展以及基本的标签. 一.HTML的发展史 1.概念 超文本标记语言(HyperText Markup Language,简称HTML)是为 [ ...
- c# winform 关于DataGridView的一些操作
转自:http://heisetoufa.iteye.com/blog/405317 设置字段名 设置字段值 设定单元格表示 Error图标 设定当前单元格 取得当前单元格内容 取得当前单元格的列 I ...
- javascript报错:ReferenceError: $ is not defined解决办法
原因很简单,要么是未导入jquery包,要么是导入的顺序不对. 例如,我在制作Chrome扩展程序时,其中的一块代码如下: 然后运行时报上述错误. 解决方法:我们不难发现script位置有问题,因为$ ...
- 小技巧:unicode RLO
unicode 控制字符 RLO 可以将位于其后的文字翻转. 于是可以被病毒利用. 如图 重命名文件,在gpj前插入unicode RLO,之后若不小心,可能会被欺骗,误以为是jpg文件. 如果修改程 ...
- JS给数字加千位分隔符
本文原链接:https://www.jianshu.com/p/928c68f92c0c JavaScript实现千位分隔符 将普通的数字转换为带千位分隔符格式的数字字符串是一个非常常见的问题,千位分 ...