Mysqli的概括:mysqli扩展是mysql扩展的增强版,它不仅包含了所有的mysql扩展的功能函数还可以使用mysql新版本中的该机特性
mysqli扩展的主要流程:
1、连接到MySQL数据库并选择数据库
2、执行sql语句
3、处理结果集
4释放结果集和关闭连接
连接MySQL数据库的例子:
$link=new mysqli('localhost','root','root','数据库的名称','3306');
里面的第一个是主机的名称,第二个是用户名,第三个是密码,第四个是的是
你要连接的数据库名称,第五个是mysql服务器的端口号默认是3306;
如果来验证是否连接上了的话用error来验证,error和errno的区别:
error的意思是返回最近调用函数的最后一个错误描述。
errno() 函数返回最近调用函数的最后一个错误代码。
例子:
首先
if($link->connect_error){echo:"数据库连接失败,错误描述是".$link->coonect_error}else{echo "数据库连接成功"}
$link->set_charset(‘utf8’);
//设置字符集:如果mysql数据库里出现乱码的话给数据库设置个字符集
在PHP里实现数据库里的增、删、改、查
1、增
一、预处理的方式进行添加
1、第一步连接上数据库
2、然后是SQL语句例:
//用POST方式传过来的值,另一个页面的name的值要和本页面的POST值对上。
$name=$_POST['name'];
$sex=$_POST['sex'];
$age=$_POST['age'];
$id=$_POST['id'];
$sql="insert into student (name,sex,age,birthday) values ('{?}','{?}','{?}')";
3、处理结果集
//预处理sql语句
$result =$link->prepare($sql);
//绑定参数赋值
$sitm=$result->bind-param['ssii',$name,$sex,$age];
//执行上面的语句
$flag=$sitm->execute();
4、释放结果集,关闭连接(否则的话会占很多的存储空间)
$flag->free();
$link->close();
二、另一种的添加:
注意:这是用get方式获取的参数,是在a标签里,所以要在另一个页面写好要调到本页面在给一个参数
//用POST方式传过来的值,另一个页面的name的值要和本页面的POST值对上。
$name=$_POST['name'];
$sex=$_POST['sex'];
$age=$_POST['age'];
//写的sql语句
$sql="insert into student (name,sex,age,birthday) values ('{$name}','{$sex}',{$age})";
用get方式来获取的
//执行sql语句($link是连接数据库的一个变量名)
$result=$link->querty($sql);
4、释放结果集,关闭连接(否则的话会占很多的存储空间)
$flag->free();
$link->close();
注意:SQL语句模板语法,对于字符串内容,“?”占位符的两边无需使用引号包裹
关于Mysqli的函数
query() :在执行增、删、改、查的sql语句时,返回一个资源的结果集
prepare():是预处理的方式,这个需要给他赋值
bind-param():这个函数是预处理后要赋值,然后在执行这些函数(sql语句);
execute():就是预处理后、赋值后执行的一个函数;
MYSQLI_ASSOC:表示返回的结果是一个关联数组
MYSQLI_NUM:表示返回的结果是一个索引数组
MYSQLI_BOTH:表示返回的结果中包含关联和索引数组,该常量为默认值
例:
//意思是获取所有的结果并以关联数组的形式返回;
$flag=$result->fetch_all(MYSQLI_ASSOC);
insert_id():获取上一次插入操作时产生的ID号
affected_rows():获取上一次操作时受影响的行数
real_escape_string():用于转义SQL语句字符串中的特殊字符
error():返回最近函数调用的错误代码
free_result():释放结果集
close():关闭数据库连接