如何在 PHP 代码中操作数据库是我们能否在自己的程序中使用数据库的核心。
数据库扩展:http://php.net/manual/zh/refs.database.php
如果需要使用 MySQLi 扩展,需要在 php.ini 文件中打开这个扩展(解除注释)
// 假定数据库用户名:root,密码:yangyongli,数据库:test $connection = mysqli_connect("localhost", "root", "yangyongli", "test"); // 设置字符集为UTF-8 防止出现乱码 mysqli_set_charset($connection , 'utf8'); if (!$connection) { // 如果连接失败报错 die('<h1>Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error() . '</h1>'); } // 查询语句 $sql = "select * from users"; $result = mysqli_query($connection, $sql); // 查询数据填充到关联数组 while ($row = mysqli_fetch_assoc($result)) { echo $row["id"] . " ‐ " . $row["username"]; } // 释放结果集 mysqli_free_result($result); mysqli_close($connection);
mysqli:
http://php.net/manual/zh/book.mysqli.php
http://www.runoob.com/php/php-ref-mysqli.html
*pdo:http://php.net/manual/zh/ref.pdo-mysql.php
<?php // 能通过PHP代码执行一个SQL语句得到查询的结果 // mb_strlen(str) // 类似于之前的宽字符集函数问题,mysqli是一个额外的扩展 // 如果想要使用这个扩展提供的函数,必须开启扩展 // extension_dir // 解除注释 extension=php_mysqli.dll // // 如果需要在调用函数时忽略错误或者警告可以在函数名之前加上 @ // 1. 建立与数据库服务器之间的连接 $connection = mysqli_connect('127.0.0.1', 'root', '123456', 'demo2'); if (!$connection) { // 连接数据库失败 exit('<h1>连接数据库失败</h1>'); } // 基于刚刚创建的连接对象执行一次查询操作 // 得到的是一个查询对象,这个查询对象可以用来再到数据一行一行拿数据 $query = mysqli_query($connection, 'select * from users;'); // var_dump($query); // 等着三蹦子去取数据 取一行 // $row = mysqli_fetch_assoc($query); // while ($row) { // var_dump($row); // $row = mysqli_fetch_assoc($query); // } // var_dump($row); // while // while ($row = mysqli_fetch_assoc($query)) { var_dump($row); }
<?php // 查询数据的查询语句 // 1. 建立与数据库服务器之间的连接 $connection = mysqli_connect('127.0.0.1', 'root', '123456', 'demo2'); // 1. 必须在查询数据之前 // 2. 必须传入连接对象和编码 mysqli_set_charset($connection, 'utf8'); // mysqli_query($connection, 'set names utf8;'); if (!$connection) { // 连接数据库失败 exit('<h1>连接数据库失败</h1>'); } // 基于刚刚创建的连接对象执行一次查询操作 $query = mysqli_query($connection, 'select * from users;'); if (!$query) { exit('<h1>查询失败</h1>'); } // 遍历结果集 while ($row = mysqli_fetch_assoc($query)) { var_dump($row); } // 释放查询结果集 mysqli_free_result($query); // 炸桥 关闭连接 mysqli_close($connection);
删除,更新操作用mysqli_affected_rows()看最终结果影响了几行
<?php // 增删改数据的查询语句 // 1. 建立与数据库服务器之间的连接 $connection = mysqli_connect('127.0.0.1', 'root', '123456', 'demo2'); if (!$connection) { // 连接数据库失败 exit('<h1>连接数据库失败</h1>'); } // 基于刚刚创建的连接对象执行一次查询操作 $query = mysqli_query($connection, 'delete from users where id = 5;'); if (!$query) { exit('<h1>查询失败</h1>'); } // 如何拿到受影响行 // 传入的一定是连接对象 $rows = mysqli_affected_rows($connection); var_dump($rows); // 炸桥 关闭连接 mysqli_close($connection);查询结果中文显示乱码问题
查询数据之前设置一下连接对象和显示编码就解决了
// 1. 必须在查询数据之前 // 2. 必须传入连接对象和编码 mysqli_set_charset($connection, 'utf8');案例:XXX管理系统
通用管理系统php+mysql模板
文章链接:
https://yangyongli.blog.csdn.net/article/details/113005923
项目链接:https://download.csdn.net/download/weixin_45525272/14922957