php中对数据库的操作,依赖于mysqli拓展,首先确保php.ini中已经开启了mysqli拓展,如果还没开启:
1.打开php安装目录,确保有php.ini配置文件,如果没有,把目录中的php.ini-development复制一份,重命名为php.ini.
2.打开php.ini, 确保已经指定拓展文件夹的路径,如果没有,添加语句:extension_dir = "C:/Develop/php/ext".
3.php.ini中默认extension=mysqli是被注释了的,取消注释.然后重新启动web服务器即可.
上面配置没有问题的话,我们就可以在php中操作数据库啦.
首先,我们需要先连接到数据库服务器,通过mysqli_connect函数连接,它接受4个参数:数据库ip, 登录名, 登录密码, 数据库名.
这里我使用的MySQL版本为8.0.16,当连接的时候遇到了一个错误信息:
查询得知,新版本的MySQL使用了caching_sha2的身份验证,php中没有对应的支持,这里需要打开命令行进入数据库,执行命令:
alter user '登录名'@'localhost' identified with mysql_native_password by '登录密码';
执行完毕,刷新界面,连接成功啦!
mysqli_connect函数有一个返回值,如果连接成功,返回的是连接的相关信息;如果连接失败,返回值为false.可以通过这个值判断是否连接成功.不多比比,直接上代码吧:
<?php
//连接数据库, 参数依次为:数据库ip地址, 登录名, 登录密码, 数据库名称. 如果连接成功,返回连接信息,否则返回false
$connection = mysqli_connect('127.0.0.1', 'root', '123456', 'demo');
if (!$connection) {
exit("连接失败");
}
//执行SQL语句, 参数为:连接对象, 语句. 如果查询成功, 查询语句返回查询对象, 增删改返回true, 查询失败则返回false
$query_result = mysqli_query($connection, 'select * from users;');
if (!$query_result) {
exit("查询失败");
}
//拿着查询对象去取具体数据
$result = array();
//通过mysqli_fetch_assoc函数一行一行的获取查询数据, 参数为查询对象, 如果数据获取到最后一行之后, 返回值为NULL, 所以可以根据返回值是否为NULL来保存数据.
while ($row = mysqli_fetch_assoc($query_result)) {
array_push($result, $row);
}
var_dump($result);
//使用完毕需要释放查询对象, 注意, 只有查询语句才需要释放查询对象, 增删改不需要
mysqli_free_result($query_result);
$delete_result = mysqli_query($connection, 'delete from users where id = 12;');
if (!$delete_result) {
exit("删除失败");
}
//如果是增删改, 可以通过此函数获取受影响的行数, 需要把连接对象传进去
$effect_num = mysqli_affected_rows ($connection);
var_dump($effect_num);
//关闭数据库连接
mysqli_close($connection);
?>
查询结果如下: