统计
  • 建站日期:2021-03-10
  • 文章总数:10138 篇
  • 评论总数:190 条
  • 分类总数:56 个
  • 最后更新:2月24日
文章 未分类

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

小天
首页 未分类 正文

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

 

 

一、Mysqli

 

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

 

1、Mysqli 连接数据库

 

 

<?php

$serveraddress='localhost';  //服务器地址

$user='root';  //用户名

$password='root'; //密码

$database='h2sheji'; //数据库

$mysqli  = new  mysqli ( $serveraddress ,  $user ,  $password ,  $database );

if ( mysqli_connect_errno ()) {

   printf ( "Connect failed: %sn" ,  mysqli_connect_error ());

   exit();

}

$mysqli->set_charset( "utf8" ); // 设置字符集

 

 

 

 

2、Mysqli 插入(增加)数据

 

 

 

$catname='www.h2sheji.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='www.h2sheji.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=h2sheji;host=localhost' ;//数据库类型,数据库,主机名

$user  =  'root' ;//用户名

$password  =  'root' ; //密码

$conn  = new  PDO ( $dsn ,  $user ,  $password );

$conn->exec("set names utf8"); //设置字符集

 

 

 

2、PDO 插入(增加)数据

 

 

 

$catname='www.h2sheji.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......

*/

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2021-10-7,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
PHP使用header+Location实现网站301重定向
« 上一篇
PHP获取IP地址的方法,防止伪造IP地址注入攻击
下一篇 »
为了防止灌水评论,登录后即可评论!

HI ! 请登录
注册会员,享受下载全站资源特权。