前言
需要向mysql数据库添加100个用户,请问如何实现
正文
通常我们的一条sql在db接收到最终执行完毕返回可以分为下面三个过程:
1. 词法和语义解析
2. 优化sql语句,制定执行计划
3. 执行并返回结果
预编译语句的优势在于归纳为:一次编译、多次运行,省去了解析优化等过程;此外预编译语句能防止sql注入。
dml数据操作语句
//创建预编译对象
$sql = "insert into stu(id,cost) values(?,?)";
$mysql_stmt = $mysql->prepare($sql);
//绑定参数
$id = 3;
$cost = 40;
//给问号赋值
$mysql_stmt->bind_param("ii",$id,$cost);
//执行
$res = $mysql_stmt->execute();
if(!$res) {
die("操作失败".$mysql_stmt->error);
}
else {
echo "操作ok";
}
dql数据查询语句
//创建一个预定义的对象 ? 站位
$sql = "select * from stu where id > ?";
$mysql_stmt = $mysql->prepare($sql);
$id = 1;
//绑定参数
$mysql_stmt->bind_param("i",$id);
$mysql_stmt->bind_result($id,$cost);
//执行
$mysql_stmt->execute();
//取结果集
while ($mysql_stmt->fetch()){
echo "$id $cost <br>";
}
//资源关闭
$mysql_stmt->free_result();
//预编译关闭
$mysql_stmt->close();
一些常用的mysqli函数
mysqli_result类
属性
列 $field_count;
行 $num_rows;
方法
fetch_fields() //列信息
被返回的对象的属性为
name - 列名
table - 该列所在的表名
max_length - 该列最大长度
not_null - 1,如果该列不能为 NULL
primary_key - 1,如果该列是 primary key
unique_key - 1,如果该列是 unique key
multiple_key - 1,如果该列是 non-unique key
numeric - 1,如果该列是 numeric
blob - 1,如果该列是 BLOB
type - 该列的类型
unsigned - 1,如果该列是无符号数
zerofill - 1,如果该列是 zero-filled