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():关闭数据库连接