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及以上的版本中. ...
随机推荐
- GNUPG
PGP (Pretty Good Privacy) 是由 Phil Zimmermann 于 1991 开发的一个用于数据加密和数字签名的程序,由于被广泛应用以至于后来形成一个开放的标准 OpenPG ...
- HTML5:使用postMessage实现Ajax跨域请求
HTML5:使用postMessage实现Ajax跨域请求 由于同源策略的限制,Javascript存在跨域通信的问题,典型的跨域问题有iframe与父级的通信等. 常规的几种解决方法: (1) do ...
- Java实现将GBK编码格式的文件夹中所有文件都转化为UTF-8格式的文件,编码格式转化
package CodeConvert; import Java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fi ...
- vue-cli 该如何正确打包iconfont?
其实这种问题应该问google的: got wrong bootstrap font path after building · Issue #166 · vuejs-templates/webpac ...
- ABAP EXCEPTION
CX_ROOT | |--CX_STATIC_CHECK | |--CX_DYNAMIC_CHECK | | | |--CX_SY_ARITHMETIC_ERROR //运算 '&OPERAT ...
- C++拾遗(七)——关联容器
关联容器(Associative containers)支持通过键来高效地查找和读取元素.两个基本的关联容器类型是 map 和set.map 的元素以键-值(key-value)对的形式组织:键用作元 ...
- UVA 1606 Amphiphilic Carbon Molecules 两亲性分子 (极角排序或叉积,扫描法)
任意线可以贪心移动到两点上.直接枚举O(n^3),会TLE. 所以采取扫描法,选基准点,然后根据极角或者两两做叉积比较进行排排序,然后扫一遍就好了.旋转的时候在O(1)时间推出下一种情况,总复杂度为O ...
- xml文件读取
xml文件如下: <annotation> <folder>bnrc</folder> <filename>jena_000000_000019_lef ...
- linux基本命令及使用方法
shell环境: shell:命令解释器,是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行. bash:是GNU 计划中重要的工具软件之一 ...
- OO作业第三单元总结
目录 一.JML语言理论基础及应用工具链 二.部署JMLUnitNG,自动生成测试用例 三.架构设计 第一次作业 第二次作业 第三次作业 四.Bug分析 五.心得体会 一.JML语言理论基础及应用工具 ...