PHP连接数据库MySQL代码:Mysqli与PDO防注入

今天主要是来分享PHP编程语言如何用PDO和Mysqli连接数据库?以及增、删、改、查。关于现在为什么都流行用PDO与Mysqli?这里我就不多讲了,主要是防止SQL注入、不同数据库类型的兼容性。具体操作如下:

 

一、Mysqli

主要讲的是Mysqli的增、删、改、查,这里所讲的增、删、改、查语句都是防注入的。可能有很多人的SQL语句只有查询是防注入的,其它并没有做任何的防注入。因为有时候网站的功能是允许“注册用户”做增、删、改、查的,不做防注入是不行的。

 

1、Mysqli 连接数据库

<?php
$serveraddress='localhost';  //服务器地址
$user='root';  //用户名
$password='root'; //密码
$database='fujieace'; //数据库
$mysqli  = new  mysqli ( $serveraddress ,  $user ,  $password ,  $database );
if ( mysqli_connect_errno ()) {
    printf ( "Connect failed: %s\n" ,  mysqli_connect_error ());
    exit();
}
$mysqli->set_charset( "utf8" ); // 设置字符集

 

2、Mysqli 插入(增加)数据

$catname='www.fujieace.com';
$parentid=12;

//mysqli插入
$sql='insert into cat (cat_name,parent_id) values(?,?)';
$stmt=$mysqli->prepare($sql);
$stmt->bind_param('si',$catname,$parentid );
/*
i  整型integer
d  双精度浮点型double
s  字符串string
b  是一个blob和将发送数据包
*/
$stmt->execute();
if($id=$stmt->insert_id){
    echo $id; //得到插入返回的ID
}

 

3、Mysqli 修改数据

$catname='https://www.fujieace.com';
$catid=66;

//mysqli修改
$sql='update cat set cat_name=? where cat_id=?';
$stmt=$mysqli->prepare($sql);
$stmt->bind_param('si',$catname,$catid );
if($stmt->execute()){
    echo '修改成功!';
}

 

4、Mysqli 删除数据

$catid=68;

//mysqli删除
$sql='delete from cat where cat_id=?';
$stmt=$mysqli->prepare($sql);
$stmt->bind_param('i',$catid );
if($stmt->execute()){
    echo '删除成功!!';
}

 

5、Mysqli 查询一条数据

$catid=12;

//mysqli查询一行
$sql='select cat_name,parent_id from cat where cat_id=?';
$stmt=$mysqli->prepare($sql);
$stmt->bind_param('i',$catid );
$stmt->execute();
$stmt -> bind_result ( $name ,  $code );
while ( $stmt -> fetch ()) {
    echo $name.'=>'.$code;
}

 

6、Mysqli 查询多条数据

$catid=10;

//mysqli查询多行
$sql='select cat_name,parent_id from cat where cat_id<?';
$stmt=$mysqli->prepare($sql);
$stmt->bind_param('i',$catid );
$stmt->execute();
$stmt -> bind_result ( $name ,  $code );//这里参数跟你查询的字段显示个数需要对应起来!
while ( $stmt -> fetch ()) {
    echo $name.'=>'.$code;
}

 

二、PDO

这里我就不多讲了,作用及原理同上。主要是讲关于:PDO连接数据库以及相应的增、删、改、查。

用PDO你只需要记住以下个步骤保证你不会出错:

1:连接数据库

2:设置字符集

3:准备SQL语句

4:替换SQL语句

5:发送SQL语句

6:得到SQL结果,可以是值,可以是布尔型,也可以是对象,数组等;

 

1、PDO 连接数据库

<?php
$dsn  =  'mysql:dbname=fujieace;host=localhost' ;//数据库类型,数据库,主机名
$user  =  'root' ;//用户名
$password  =  'root' ; //密码
$conn  = new  PDO ( $dsn ,  $user ,  $password );
$conn->exec("set names utf8"); //设置字符集

 

2、PDO 插入(增加)数据

$catname='www.fujieace.com';
$parentid=66;
$sql='insert into cat (cat_name,parent_id) values(:catname,:parentid)';

//PDO插入方法一
$sth=$conn->prepare($sql,array( PDO :: ATTR_CURSOR  =>  PDO :: CURSOR_FWDONLY));
$sth->execute(array(':catname'=>$catname,':parentid'=>$parentid));
if($id=$conn->lastInsertId()){
    echo $id; //得到插入返回的ID
}

//PDO插入方法二
$sth=$conn->prepare($sql);
$sth -> bindParam ( ':catname' ,  $catname ,  PDO :: PARAM_STR );
$sth -> bindParam ( ':parentid' , $parentid ,  PDO :: PARAM_INT ,  12 );//参数标识,绑定的变量名,参数类型(选填),数据类型长度(选填)
$sth -> execute ();
if($id=$conn->lastInsertId()){
    echo $id; //得到插入返回的ID
}

 

3、PDO 修改数据

$catname='付杰';
$catid=88;

//PDO修改
$sql='update cat set cat_name=? where cat_id=?';
$sth=$conn->prepare($sql);
$sth->bindParam(1, $catname);
$sth->bindParam(2,$catid);
if($sth->execute()){
    echo '修改成功!';
}

 

4、PDO 删除数据

$catid=91;

//PDO删除
$sql='delete from cat where cat_id=:catid';
$sth=$conn->prepare($sql);
$sth->bindValue(':catid',$catid,PDO::PARAM_INT);
if($sth->execute()){
    echo '删除成功!';
}

 

5、PDO 查询数据(一条或多条)

$catid=10;
//PDO查询多行
$sql='select cat_name,parent_id from cat where cat_id<?';
$sth=$conn->prepare($sql);
$sth->bindParam(1,$catid);
$sth->execute();
$result=$sth->fetchAll();
//var_dump($result);
foreach ($result as $k => $v){
    echo $v['cat_name'].'=>'.$v['parent_id'];
}

$catid=12;
//PDO查询一行
$sql='select cat_name,parent_id from cat where cat_id=:catid';
$sth=$conn->prepare($sql);
$sth->bindParam(':catid',$catid);
$sth->execute();
$result=$sth->fetch(PDO::FETCH_ASSOC);
var_dump($result);
/*
 FETCH_ASSOC、FETCH_BOTH、FETCH_BOUND、FETCH_CLASS、FETCH_COLUMN、FETCH_FUNC、GROUP、INTO、KEY_PAIR、LAZY、NAMED、NUM、OBJ、ORI_ABS......
 */
    A+
发布日期:2019年01月08日 21:16:32  所属分类:PHP
最后更新时间:2019-01-08 21:22:34
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
付杰
SEO顾问服务 中小型网站 单站/最低99.9元 全方位优化
SEO顾问服务 中小型网站 单站/最低99.9元 全方位优化
  • ¥ 99.9元
  • 市场价:5000元
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 9.9元
  • 市场价:49.9元
wordpress站群服务 泛解析二级域名 二级目录站群
wordpress站群服务 泛解析二级域名 二级目录站群
  • ¥ 1999.9元
  • 市场价:4800元
免费SSL证书服务 HTTPS申请 安装 配置 支持通配符*
免费SSL证书服务 HTTPS申请 安装 配置 支持通配符*
  • ¥ 199.9元
  • 市场价:20000元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

  1. 头像 青春阳光 0

    博客不错,我也是PHPer,学习了