php操作mysql数据库的扩展有哪些_PHP mysql扩展整理,操作数据库的实现过程分析

从某种程度上说,php就是一个数据库的客户端.

尽管官方已经不推荐使用,php7.0甚至已经移除了mysql扩展.但是学习一下面向过程的编程思想也是不错的.

核心步骤

连接数据库 => 执行sql语句

其实通过mysql扩展对数据库的操作都是围绕这两个步骤来的

详细步骤

详细步骤流程图如下:

33ad2670201cdfb6dae5c1fd589af826.png

查询操作

下面程序可以实现查询本地test数据库中class表,并将查询结果输出:

$conn =@mysql_connect('localhost','root','root');if (!$conn){die("连接失败,错误信息".mysql_error());

}//第二步:选择数据库

mysql_select_db("test");//第三步:设置字符集

mysql_set_charset("utf8");//第四步:创建sql语句

$sql = "select* from `class`";//第五步:执行sql

if($res = mysql_query($sql)){while($row =mysql_fetch_assoc($res)){echo "

";var_dump($row);echo "
";

}

}

//第六步:关闭结果集

mysql_free_result($res);

//第七步:释放连接

mysql_close($conn);

mysql_query()函数的参数如果是查询操作,执行后将返回一个指向查询结果的资源文件

如果查询失败,将返回一个空字符串

mysql_fetch_开头的函数一共有四个,都能够获取函数的查询结果:

mysql_fetch_row:将查询结果以索引数组的形式返回

mysql_fetch_assoc:返回关联数组

mysql_fetch_array:会把索引数组和关联数组都返回

mysql_fectch_object:返回对象的形式

以上面代码为例

mysql_fetch_assoc输出的结果为:

e3f15b0da00dc4d0efa947711c9863fc.png

改为mysql_fetch_row输出的结果为

65d537448d12d53132af30fee580f711.png

dml操作

查询操作需要获取查询结果,增删改操作不需要,因此步骤上略有不同:

$conn =@mysql_connect('localhost','root','root');if (!$conn){die("连接失败,错误信息".mysql_error());

}//第二步:选择数据库

mysql_select_db("test");//第三步:设置字符集

mysql_set_charset("utf8");//第四步:创建sql语句

$sql = "delete from class where `sname`='谢尔顿李库伯'";//第五步:执行sql

$exec =mysql_query($sql);if (mysql_affected_rows($conn)){echo '操作成功,对记录产生影响';

}else{echo '操作失败'.mysql_error();

}//不需要释放资源

//第六步:释放连接

mysql_close($conn);

与查询操作不同之处:

1.判断执行是否成功应该使用mysql_affected_rows()函数,而不是mysql_query()函数:

dml操作都是会对数据表产生影响的,

mysql_query()里的sql语句即使执行成功,也未必会对数据表产生影响(比如删除一个不存在的列,或者修改的结果和原结果相同)

因此要判断操作是否成功,就要判断是否对数据库产生了影响,mysql_affected_rows()就可以实现这一功能,数据库改变时,该函数会返回ture,否则返回false

2.不需要关闭结果集,因为本身就没有结果集

3.mysql_query()执行的dml操作时的返回值与查询操作不同,他将返回一个Boolean类型的值,执行成功为true,执行失败为false

插入和修改操作与删除操作基本相同,只需要修改对应的sql语句即可.

数据库的其他操作

除了对数据表内记录的操作,mysql扩展还能执行很多数据库操作:如show\drop\alter等

以删除数据表操作为例:与dml操作相比,只需要修改sql语句和判断执行是否成功的语句即可

$conn =@mysql_connect('localhost','root','root');if (!$conn){die("连接失败,错误信息".mysql_error());

}//第二步:选择数据库

mysql_select_db("test");//第三步:设置字符集

mysql_set_charset("utf8");//第四步:创建sql语句

$sql = "drop table deletetest";//第五步:执行sql

if (mysql_query($sql)){echo '操作成功';

}else{echo '操作失败'.mysql_error();

}//不需要释放资源

//第六步:释放连接

mysql_close($conn);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值