php代码,如何利用mysqli原生支持执行mysql语句?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文说一个非常原始的话题,那就是php
代码读写mysql
。如果站在各种php
框架的角度来看这个问题的话,很容易解决。所以本文的行文角度是【原生支持】,并不是被各大框架包装过的mysql
数据库读写方式。所谓的原生支持的代码写法,也是基于php
的各种extension
来决定的。本文描述的是基于php_mysqli.so
这个扩展。

大家好,这里是苏南大叔的“程序如此灵动”技术博客,记录苏南大叔的编程经验感悟。本文描述php
利用mysqli
扩展连接mysql
数据库的方式方法。测试环境:win10
,php@7.4.3nts
,mysqli@
,mysql
。本文是连接使用mysqli
方式的第一种方法,可以用于快速编写一个api.php
文件。
有哪些扩展?
php
连接mysql
,其实有很多扩展可以使用。
php_mysql
,这个被官方废弃了!php5
系列就不支持了。白瞎了这个好名字。php_mysqli
,这个是最新的官方支持,注意它是mysql
的扩展,并不是sqlite
的扩展!神之迷惑之字母i
。php_pdo_mysql
,pdo
系列数据库的代码风格都是一致的。odbc
,回到被sqlserver
支配的复杂模式...头大。
苏南大叔目前推荐大家首先使用你熟悉的框架来链接mysql
数据库,当然如果你恐怖于框架的庞大的话,就可以回过头来看看本文的内容。本文的正常使用,需要你在php.ini
中开启php_mysqli.dll
扩展。
开启后,在phpinfo()
里面就可以看到mysqli
扩展。

测试数据
默认连接localhost
的3306
,用户名密码都是root
。测试数据库是test
,数据表是users3
。建表语句如下:

连接数据库
查询数据库
这个地方的bind_param()
函数非常奇怪,参数居然是reference
。而且,直接传递参数会报错。
另外第一个参数ss
,表示两个string
。
获取数据库
这个bind_result()
和上面的bind_param()
一样都是很奇怪的,和select
语句后面的字段有关,而且也是凭空生成的reference
类型。
可能获得错误提示信息是:
关闭链接
结束语
本文里面仅仅是个代码演示,在实际的代码应用中,还是要多看官方文档,才能理解的更好了。


