预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高。
预处理语句的工作原理如下:
相比于直接执行SQL语句,预处理语句有两个主要优点:
<?php $servername = "localhost"; $username = "root"; $password = "111111"; $dbname = "test"; // 创建连接 $mysqli = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($mysqli->connect_error) { die("Connection failed: " . $mysqli->connect_error); } // 创建预编译对象 $stmt = $mysqli->prepare("INSERT INTO test (id, name) VALUES(?, ?)"); //参数绑定->给?号赋值 这里类型和顺序要一致,类型、赋值和??的顺序要一致 //参数有以下四种类型: //i - integer(整型) //d - double(双精度浮点型) //s - string(字符串) //b - BLOB(binary large object:二进制大对象) $stmt->bind_param("is", $id, $name); // 设置参数 $id = "1"; $name = "Doe"; // 执行 $stmt->execute(); $id = "2"; $name = "asd"; $stmt->execute(); $id = "3"; $name = "gfh"; $stmt->execute(); //关闭预编译 $stmt->close(); //关闭数据库连接 $mysqli->close(); ?>
$stmt = $mysqli->prepare($sql);
4、string $stmt->error;
5、int $stmt->field_count; 返回给定语句查询结果集的字段数目
6、int $stmt->insert_id; 获取从先前插入操作生成的标识id
7、int $stmt->num_rows; 返回语句结果集中的行数
8、int $stmt->param_count; 返回执行的sql语句的参数个数
9、string $stmt->sqlstate;
$attr
)
$attr
,
int $mode
)
$types
,
mixed &$var1
[,
mixed &$...
] )
&$var1
[,
mixed &$...
] )
$offset
)
$stmt
)
$query
)
$param_nr
,
string $data
)