php使用mysqli扩展操作mysql数据库注意事项

来源:IT星空
访问量:82
发布日期:2022-10-25

创建mysqli的对象:

$db = new mysqli("主机","账号","密码","数据库","端口");

如:

$db = new mysqli("127.0.0.1","root","123456","weibodemo","3306");

查看是否链接成功:

if($db->connect_errno){
die('连接错误'. $db->connect_error);
}

设置字符集:

$db->set_charset('utf8');

编写sql语句:

$seledtsql ="select * from tablename where 字段名='字段值'"

$insertsql="insert into tablename set 字段名1='值1',字段名2='值2',字段名3='值3'"

$updatesql="update into tablename set 字段名='值1',字段名='值2',字段名3='值3'"

注意:tablename两侧一定不要加单引号,字段名两侧一定不要加单引号,字段值两侧需加单引号。

执行sql语句:

$result=$db->query($sql)

注意:查询语句执行返回的是结果集对象。结果对象有以下属性和方法:

$result->num_rows;

该属性用来获取当次查询一共查询了多少条数据,是int类型。

$result->fetch_array();

这个方法每执行一次将获得一条数据,并且将结果集中的指针自动下移一位。如果要取得结果集中所有数据,可以结合while循环获取。

$result->fetch_row();

该方法和fetch_array()方法相似,不同的是它返回的数组只有下标。

当执行完这些操作后,$result对象已经没什么用了,如果不消除会占用系统内存。可以用$result->free()方法释放结果集占用的内存。

insert和update语句执行结果不是结果集,是布尔类型,没有num_rows属性和fetch_array()、free()方法。执行成功返回true,失败返回false。

如果新增或者更新语句结果使用free()方法释放,会报如下错误:

Fatal error: Uncaught Error: Call to a member function free() on boolean in ……

最后,当所有操作执行完毕后,需要将数据库连接关闭:

$db->close();

该文依据的测试环境为:PHP7.4