php数据预处理实验报告,mysqli之预处理

预处理的好处1.防止SQL注入

2.一条语句多次使用

预处理步骤

准备工作:连接数据库,准备SQL语句创建预处理对象

检测SQL语句

参数绑定

执行操作

销毁对象

关闭数据库连接

预处理的增删改查示例

其实呢,预处理的增删改查基本操作都一样

下面呢  我把他们一样的拿出来,

基本样式

1连接数据库,准备SQL语句 sql语句中的值必须为问号,且顺序不能乱require 'connect.php';

$sql = "INSERT IGNORE aaa SET name=?,age=?,money=?;";

//    给变量赋值

$name= '西施妹妹';

$age=16;

$money=5600;

创建预处理对象/检测SQL语句---这两句是公共样式//创建stmt预处理对象

$stmt = mysqli_stmt_init($db);

//检测SQL语句

//mysqli_stmt_prepare()

if(mysqli_stmt_prepare($stmt,$sql)){

参数绑定--参数就是根据你要与处理得参数来定,注意一下他们的类型//讲变量与SQL语句的占位符进行绑定

//    mysqli_stmt_bind_param()

mysqli_stmt_bind_param($stmt,"sii",$name,$age,$money);

执行操作 ----增删改的执行是一样的,查的不一样,继续往下看 ,下边上实例//    执行SQL语句

//    mysqli_stmt_execute()

mysqli_stmt_execute($stmt);

//更新条数

echo '新增了'.mysqli_stmt_affected_rows($stmt).'条,ID是:'.mysqli_stmt_insert_id($stmt);

销毁对象/关闭数据库连接---公共样式}

//关闭

mysqli_stmt_close($stmt);

mysqli_close($db);

光这样看也看不出个啥  下面把增删改查的实例放上来瞅瞅

查的实例

/**

* User: Z先生

* Date: 2018/4/25

* 数据查询

*/

require 'connect.php';

$sql = "SELECT name,age FROM aaa WHERE id=?;";

//    给变量赋值

$id = 34;

//创建stmt预处理对象

$stmt = mysqli_stmt_init($db);

//检测SQL语句

//mysqli_stmt_prepare()

if(mysqli_stmt_prepare($stmt,$sql)){

//讲变量与SQL语句的占位符进行绑定

//    mysqli_stmt_bind_param()

mysqli_stmt_bind_param($stmt,"i",$id);

//    执行SQL语句

//    mysqli_stmt_execute()

mysqli_stmt_execute($stmt);

//    绑定结果变量 SQL查了几个字段这里就设置几个字段

mysqli_stmt_bind_result($stmt,$name,$age);

//    获取值

mysqli_stmt_fetch($stmt);

//    输出

echo $name .'的年龄是'. $age;

}

//关闭

mysqli_stmt_close($stmt);

mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

改的实例

/**

* User: Z先生

* Date: 2018/4/25

* 数据查询

*/

require 'connect.php';

$sql = "INSERT IGNORE aaa SET name=?,age=?,money=?;";

//    给变量赋值

$name= '西施妹妹';

$age=16;

$money=5600;

//创建stmt预处理对象

$stmt = mysqli_stmt_init($db);

//检测SQL语句

//mysqli_stmt_prepare()

if(mysqli_stmt_prepare($stmt,$sql)){

//讲变量与SQL语句的占位符进行绑定

//    mysqli_stmt_bind_param()

mysqli_stmt_bind_param($stmt,"sii",$name,$age,$money);

//    执行SQL语句

//    mysqli_stmt_execute()

mysqli_stmt_execute($stmt);

//更新条数

echo '新增了'.mysqli_stmt_affected_rows($stmt).'条,ID是:'.mysqli_stmt_insert_id($stmt);

}

//关闭

mysqli_stmt_close($stmt);

mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

删的实例

/**

* User: Z先生

* Date: 2018/4/25

* 数据查询

*/

require 'connect.php';

$sql = "DELETE FROM aaa  WHERE id=?;";

//    给变量赋值

$id = 34;

//创建stmt预处理对象

$stmt = mysqli_stmt_init($db);

//检测SQL语句

//mysqli_stmt_prepare()

if(mysqli_stmt_prepare($stmt,$sql)){

//讲变量与SQL语句的占位符进行绑定

//    mysqli_stmt_bind_param()

mysqli_stmt_bind_param($stmt,"i",$id);

//    执行SQL语句

//    mysqli_stmt_execute()

mysqli_stmt_execute($stmt);

//更新条数

echo '删除了'.mysqli_stmt_affected_rows($stmt).'条';

}

//关闭

mysqli_stmt_close($stmt);

mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

改的实例

/**

* User: Z先生

* Date: 2018/4/25

* 数据查询

*/

require 'connect.php';

$sql = "UPDATE aaa SET name=? WHERE id=?;";

//    给变量赋值

$name = "刘大姐";

$id = 34;

//创建stmt预处理对象

$stmt = mysqli_stmt_init($db);

//检测SQL语句

//mysqli_stmt_prepare()

if(mysqli_stmt_prepare($stmt,$sql)){

//讲变量与SQL语句的占位符进行绑定

//    mysqli_stmt_bind_param()

mysqli_stmt_bind_param($stmt,"si",$name,$id);

//    执行SQL语句

//    mysqli_stmt_execute()

mysqli_stmt_execute($stmt);

//更新条数

echo '更新了'.mysqli_stmt_affected_rows($stmt).'条';

}

//关闭

mysqli_stmt_close($stmt);

mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值