一、mysqli类的操作与使用
1、创建一张mysql的新表以供测试使用
CREATE TABLE IF NOT EXISTS `user`(
idINT UNSIGNED NOT NULL PRIMARY KEYAUTO_INCREMENT COMMENT "用户ID",
nameVARCHAR(30) NOT NULL DEFAULT ''COMMENT "用户名",
passwordCHAR(30) NOT NULLCOMMENT "密码",
emailVARCHAR(100) NOT NULL UNIQUE DEFAULT ''COMMENT "邮箱",
birthday DATENOT NULL DEFAULT '2000-1-1'COMMENT "出生日期",
ageTINYINT UNSIGNED NOT NULLCOMMENT "年龄"
)CHARSET=utf8 ENGINE=INNODB;
2、利用mysqli建立连接
new Mysqli(主机名,用户名,密码,数据库名,端口号)
$config =['host' => 'localhost',
'user' => 'root',
'password' => 'phpcj',
'dbname' => 'learn',
'port' => 3306];$mysqli = new Mysqli($config['host'], $config['user'], $config['password'],$config['dbname'], $config['port']);//如果没有错误则返回0如果有错误,那么返回对应的错误编号
if($mysqli->connect_errno) {die('连接错误,错误信息是'.$mysqli->connect_error);
}//设置字符集
$mysqli->set_charset('utf8');//执行查询操作,如果要查看执行的错误那么可以用Mysqli->error
$res = $mysqli->query('SELECT * FROM `user`');//把mysql对象转成结果并还条打印
while($row = $res->fetch_assoc()) {var_dump($row);
}//释放结果集
$res->free();//关闭数据库
$mysqli->close();
3、mysqli 的使用细节说明
mysqli_result::fetch_assoc => 返回的是一个关联数组(推荐使用)
mysqli_result::fetch_array => 返回的是一个关联数组以及索引数组
mysqli_result::fetch_row => 返回的是一个索引数组
mysqli_result::fetch_object => 返回的是一个对象
mysqli_result::data_seek(0) => 重置Mysql查询的指针为0;
用法如以2点的例子一样
如果想获取自增长的ID用mysqli->insert_id即可以
4、mysql 查询的预处理
<?phpheader ('content-type:text/html;charset=utf8');$config =['host' => 'localhost',
'user' => 'root',
'password' => 'phpcj',
'dbname' => 'learn',
'port' => 3306];$mysqli = new Mysqli($config['host'], $config['user'], $config['password'],$config['dbname'], $config['port']);//如果没有错误则返回0如果有错误,那么返回对应的错误编号
if($mysqli->connect_errno) {die('连接错误,错误信息是'.$mysqli->connect_error);
}//设置字符集
$mysqli->set_charset('utf8');$sql = 'SELECT `id`, `name`, `age` FROM `user` WHERE `age`>?';//进行预处理
$res = $mysqli->prepare($sql);//假定id的值为20;
$id = 20;//进行值的绑定
$res->bind_param('i', $id);//进行结果绑定
$res->bind_result($myId, $myName, $myAge);//预处理执行
if($res->execute()) {while($res->fetch()) {echo $myId,$myName,$myAge;//输出2bbb21
}
}$res->free_result();$res->close();$mysqli->close();?>
5、mysqli的批量查询操作
<?phpheader ('content-type:te