如上方案三就是使用预编译技术—-该方案还可以防止sql注入攻击
执行程序前
mysql> select * from words;
+----+----------+----------+
| id | enword | chword |
+----+----------+----------+
| 1 | one | 一 |
| 2 | two | 二 |
| 3 | thr | 三 |
| 4 | four | 四 |
| 5 | five | 五 |
| 6 | six | 六 |
| 10 | boys | 男孩儿们 |
| 9 | boy | 男 |
| 11 | wc | 厕所 |
| 12 | girl | 女 |
| 13 | girls | 女孩们 |
| 14 | test | 测试 |
| 15 | test | 测试 |
| 16 | phone | 手机 |
| 17 | telphone | 手机 |
+----+----------+----------+
15 rows in set (0.19 sec)
执行程序
<?php
header("content-type:text/html;charset=utf-8");
//需求使用预处理方式添加三个或多个用户
//演示预编译
//1、创建mysqli对象
$mysqli = new MySQLi('localhost','root','tmdqobn','db100');
//2、创建预编译对象
$sql = "insert into words (enword,chword) values (?,?)";//预编译的话 values 后边不填写具体的值直接用?作为占位符替代
$mysqli_stmt=$mysqli->prepare($sql);
//绑定参数
$enword="test1";
$chword="测试1";
$mysqli_stmt->bind_param("ss",$enword,$chword);//bind_param 内部type 对照着表创建的字段类型->字符串用s表示,int用i表示 double 用d表示 还有一个不常用的b 碰到再说吧。
$isSuccess = $mysqli_stmt->execute();
if(!$isSuccess){
die("操作失败".$mysqli_stmt->error);
}else{
echo "操作成功";
}
//绑定参数
$enword="phone1";
$chword="手机1";
$mysqli_stmt->bind_param("ss",$enword,$chword);//bind_param 内部type 对照着表创建的字段类型->字符串用s表示,int用i表示 double 用d表示 还有一个不常用的b 碰到再说吧。
$isSuccess = $mysqli_stmt->execute();
if(!$isSuccess){
die("操作失败".$mysqli_stmt->error);
}else{
echo "操作成功";
}
//绑定参数
$enword="telphone1";
$chword="手机1";
$mysqli_stmt->bind_param("ss",$enword,$chword);//bind_param 内部type 对照着表创建的字段类型->字符串用s表示,int用i表示 double 用d表示 还有一个不常用的b 碰到再说吧。
$isSuccess = $mysqli_stmt->execute();
if(!$isSuccess){
die("操作失败".$mysqli_stmt->error);
}else{
echo "操作成功";
}
for($i=0;$i<10;$i++){
$enword = $i;
$chword = $i+100;
$mysqli_stmt->bind_param("ss",$enword,$chword);
$isSuccess = $mysqli_stmt->execute();
if(!$isSuccess){
die("操作失败".$mysqli_stmt->error);
}else{
echo "操作成功";
}
}
$mysqli->close();
?>
执行完程序后
mysql> select * from words;
+----+-----------+----------+
| id | enword | chword |
+----+-----------+----------+
| 1 | one | 一 |
| 2 | two | 二 |
| 3 | thr | 三 |
| 4 | four | 四 |
| 5 | five | 五 |
| 6 | six | 六 |
| 10 | boys | 男孩儿们 |
| 9 | boy | 男 |
| 11 | wc | 厕所 |
| 12 | girl | 女 |
| 13 | girls | 女孩们 |
| 14 | test | 测试 |
| 15 | test | 测试 |
| 16 | phone | 手机 |
| 17 | telphone | 手机 |
| 18 | test1 | 测试1 |
| 19 | phone1 | 手机1 |
| 20 | telphone1 | 手机1 |
| 21 | 0 | 100 |
| 22 | 1 | 101 |
| 23 | 2 | 102 |
| 24 | 3 | 103 |
| 25 | 4 | 104 |
| 26 | 5 | 105 |
| 27 | 6 | 106 |
| 28 | 7 | 107 |
| 29 | 8 | 108 |
| 30 | 9 | 109 |
+----+-----------+----------+
28 rows in set (0.00 sec)
mysql>