MySQLi使用实例深度讲解:MySQLi基于面向过程的编程

以下编程基于PHP环境:mysqli在windows上,对于PHP 5.3或更新版本,mysqli扩展默认开启,对于PHP 5.0 5.1 5.2,mysqli扩展默认并不会开启,因此php.ini中php_mysqli.dll这个DLL 必须开启。MySQLi基于面向过程的编程和面向对象的编程是相对的,其中使用到的方法都是可以类比的。连接数据库。

1、设置文件字符编码及连接数据库

//设置文件字符编码
header("Content-type:text/html;charset=utf-8");
//连接数据库
$link=mysqli_connect('localhost', 'root', '', 'test','port') or die ('Connect Error:'.mysqli_connect_error());

2、设置数据库字符编码

mysqli_set_charset($link,'UTF8');

3、插入记录

$query = "INSERT INTO staff(id,name,job) VALUES('','naruto','保安队长')";
$res = mysqli_query($link,$query);//插入成功返回真,插入失败返回假

if($res){
    //插入成功则输出自增主键的id
    echo "AUTO_INCREMENT:".mysqli_insert_id($link);
    echo "<hr/>";
    echo "AFFECTED ROWS:".mysqli_affected_rows($link);
}else{
    //插入失败则输出错误编号和错误信息
    echo "Error:";
    echo mysqli_errno($link).":".mysqli_error($link);
}

4、查询一条记录

//函数名及说明
//mysqli_fetch_assoc($result)    查询到的一条数据以关联数组形式返回
//mysqli_fetch_row($result)    查询到的一条数据以索引数组形式返回
//mysqli_fetch_array($result)    查询到的一条数据以索引数组和关联数组的混合形式返回
//mysqli_fetch_object($result)    查询到的一条数据以对象属性的形式返回
//mysqli_fetch_array($result)    查询到的一条数据以索引数组和关联数组的混合形式返回
//mysqli_fetch_array($result,MYSQLI_BOTH)    查询到的一条数据以索引数组和关联数组的混合形式返回
//mysqli_fetch_array($result,MYSQLI_ASSOC)    查询到的一条数据以关联数组的混合形式返回
//mysqli_fetch_array($result,MYSQLI_ROW)    查询到的一条数据以索引数组的混合形式返回
$query = "SELECT * FROM staff WHERE id = 2";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_assoc($result);
var_dump($row);    //输出查询结果

5、查询多条记录(一次取出多条记录)

//函数名及说明
//mysqli_fetch_all($result)    查询到的所有数据以索引数组和关联数组的混合形式返回
//mysqli_fetch_all($result,MYSQLI_BOTH)    查询到的所有数据以索引数组和关联数组的混合形式返回
//mysqli_fetch_all($result,MYSQLI_ASSOC)    查询到的所有数据以关联数组的混合形式返回
//mysqli_fetch_all($result,MYSQLI_ROW)    查询到的所有数据以索引数组的混合形式返回
$query = "SELECT * FROM staff";
$result = mysqli_query($link, $query);
$rows = mysqli_fetch_all($result,MYSQLI_ASSOC);
echo "共".count($rows)."条记录:";
var_dump($rows);

6、每次取出一条记录

$query = "SELECT * FROM staff";
$result = mysqli_query($link, $query);

while($row = mysqli_fetch_assoc($result)){
    $rows[] = $row;
};

echo "共".count($rows)."条记录:";
var_dump($rows);

7、更新记录

更新操作和插入操作类似,区别是执行的sql语句不同。

$query = "UPDATE staff SET name = 'kakax' WHERE id = 3";
$res = mysqli_query($link,$query);//插入成功返回真,插入失败返回假

if($res){
    //插入成功则输出自增主键的id
    echo "AUTO_INCREMENT:".mysqli_insert_id($link);
    echo "<hr/>";
    echo "AFFECTED ROWS:".mysqli_affected_rows($link);
}else{
    //插入失败则输出错误编号和错误信息
    echo "Error:";
    echo mysqli_errno($link).":".mysqli_error($link);
}

8、删除记录

删除操作和插入操作以及更新操作类似,区别是执行的sql语句不通。

$query = "DELETE FROM staff WHERE id = 13";
$res = mysqli_query($link,$query);//插入成功返回真,插入失败返回假

if($res){
    //插入成功则输出自增主键的id
    echo "AUTO_INCREMENT:".mysqli_insert_id($link);
    echo "<hr/>";
    echo "AFFECTED ROWS:".mysqli_affected_rows($link);
}else{
    //插入失败则输出错误编号和错误信息

    echo "Error:";
    echo mysqli_errno($link).":".mysqli_error($link);
}

9、关闭数据库连接

mysqli_close($link);

如果不适用mysqli_close()语句关闭数据库的连接,则非持久连接会在脚本执行完毕后自动关闭。mysqli_close() 不会关闭由 mysqli_pconnect() 建立的持久连接。

点赞 0 分享
本文为「本站原创」,未经我们许可,严谨任何人或单位以任何形式转载或刊载本文章,我们保留依法追究侵权的权力!

微信联系我们

亿百天技术客户服务

使用微信扫一扫

昵称:亿百天技术

公司:湖北亿百天信息技术有限公司

电话:027-88773336

手机:15342213852

邮箱:serviceebaitian.cn

相关栏目

加载中...

成为会员立享特权

立即注册亿百天公司会员,在线联系客服立即享受会员特权,还有丰厚礼品赠送;签约时可以享受特低折扣优惠,期待您的加入!

客服热线:400-840-3336

我们为您提供个性化的售前咨询服务,及全面的技术售后服务。