有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享
路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。
1 PHP操作MySQL数据库的方法
PHP操作数据库现在用的多的是mysqli拓展库,mysqli扩展库和mysql扩展库的应用类似,而且大部分函数的使用方法都一样,唯一的区别就是mysqli扩展库中的函数名称都是以mysqli开头的。
1.1 安装并连接MySQL服务器
首先要在本地安装了MySQL数据库,你可以直接进入MySQL官方地址去下载。
找到这个地方下载即可,下载傻瓜式安装即可。
接下来使用开源软件连接mysql,我用的是navicat。
接下来用PHP尝试连接一下MySQL数据库。
<?php
//mysqli_connect 函数实现与MySQL数据库的连接。
$link = mysqli_connect('localhost','root','passwd');
if($link) {
echo "连接MySQL数据库成功!";
} else{
echo "未连接!";
}
?>
1.2 选择MySQL数据库连接
首先我们安装好MySQL后,在MySQL服务器里会有一个默认的world数据库,我们利用它来做测试。连接数据库有两种方式,一种是直接mysqli_connect()函数里配置一个数据库名,另一种是利用msqli_select_db()函数选择数据库。
第一种:(返回布尔型结果)
<?php
$dbName = 'world';
$link = mysqli_connect('localhost','root','passwd',$dbName);
if($link) {
echo "连接".$dbName."数据库成功!";
} else{
echo $dbName."未连接!";
}
?>
第二种:(返回布尔型结果)
<?php
$dbName = 'world';
$link = mysqli_connect('localhost','root','passwd');
if(mysqli_select_db($link,$dbName)) {
echo "连接".$dbName."数据库成功!";
} else{
echo $dbName."未连接!";
}
?>
1.3 执行SQL语句
执行sql语句的函数是mysqli_query(),其语法如下:
mixed mysqli_query(mysqli $link, string $query [, int $resultmode])
/**
参数介绍:
$link 必选参数,mysqli_connect()函数连接Mysql数据库服务器成功后的连接标识。
$query必选参数,sql语句。
$resultMode,可选参数,默认值为MYSQL_STORE_RESULT。如果返回大量数据可以应用 MYSQL_USE_RESULT,但应用该值时,以后的查询可能会返回一个commands out of sync错误,解决办法是应用mysqli_free_result()函数释放内存。
*/
如果SQL语句是查询指令select,成功则返回查询结果集,否则返回false;如果SQL语句是insert、delete、update等操作指令,成功返回true,否则返回false。
在db_test数据库里创建一个表books,sql语句如下:
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books`(
`id` int(8) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`category` varchar(50) NOT NULL,
`price` decimal(10,2) DEFAULT NULL,
`publish_time` date DEFAULT NULL,
PRIMARY KEY (`id`)
)ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
1.3.1 执行插入语句:
<?php
$dbName = 'db_test';
$link = mysqli_connect('localhost','root','passwd');
if(mysqli_select_db($link,$dbName)) {
echo "连接".$dbName."数据库成功!<br>";
$result = mysqli_query($link,"insert into books values('1','php基础','跟着路老师学习PHP高级','10.0','2024-07-07')");
if($result){
echo "插入成功!";
} else {
echo "插入失败!";
}
} else{
echo $dbName."未连接!";
}
?>
查看数据库数据:
1.3.2 执行更新操作
<?php
$dbName = 'db_test';
$link = mysqli_connect('localhost','root','passwd');
if(mysqli_select_db($link,$dbName)) {
echo "连接".$dbName."数据库成功!<br>";
$result = mysqli_query($link,"update books set name='java开发',price='33.00' where id='2'");
if($result){
echo "更新成功!";
} else {
echo "更新失败!";
}
} else{
echo $dbName."未连接!";
}
?>
数据库中的数据变化:
1.3.3 执行删除操作
<?php
$dbName = 'db_test';
$link = mysqli_connect('localhost','root','passwd');
if(mysqli_select_db($link,$dbName)) {
echo "连接".$dbName."数据库成功!<br>";
$result = mysqli_query($link,"delete from books where name='3php基础3'");
if($result){
echo "删除成功!";
} else {
echo "删除失败!";
}
} else{
echo $dbName."未连接!";
}
?>
数据库中数据变换:(第三条数据已经被删除)
1.3.4 执行查询操作
<?php
$dbName = 'db_test';
$link = mysqli_connect('localhost','root','passwd');
if(mysqli_select_db($link,$dbName)) {
echo "连接".$dbName."数据库成功!<br>";
$result = mysqli_query($link,"select * from books");
// 检查结果
if ($result->num_rows > 0) {
// 输出每行数据
while($row = $result->fetch_assoc()) {
echo $row["id"]. "--" . $row["name"]. "--" . $row["category"]. "--" . $row["price"]."--". $row["publish_time"]."<br>";
}
} else {
echo "0 结果";
}
} else{
echo $dbName."未连接!";
}
?>
1.4 将结果集返回到数组
使用mysqli_query()函数执行select语句返回结果集合的遍历是稍微复杂一些,结果集展示的函数除了1.3.4中的fetch_assoc()以外还有一个mysqli_fetch_array()函数,它将结果集返回到数组中。
创建lists.html文件,并在里面实现php内嵌语句。
<div class="container">
<div class="col-sm-offset-2 col-sm-8">
<div class="panel panel-default">
<div class="panel-heading">
图书列表
</div>
<div class="panel-body">
<table class="table table-striped task-table">
<thead>
<tr>
<th>ID</th>
<th>图书名称</th>
<th>分类</th>
<th>价格</th>
<th>出版日期</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php while($rows = mysqli_fetch_array($result,MYSQLI_ASSOC)){ ?>
<tr>
<td class="table-text">
<?php echo $rows['id'] ?>
</td>
<td class="table-text">
<?php echo $rows['name'] ?>
</td>
<td class="table-text">
<?php echo $rows['category'] ?>
</td>
<td class="table-text">
<?php echo $rows['price'] ?>
</td>
<td class="table-text">
<?php echo $rows['publish_time'] ?>
</td>
<td>
<a href="editBook.php?id=<?php echo $rows['id'] ?>">
<button class="btn btn-info edit">编辑</button>
</a>
<a href="deleteBook.php?id=<?php echo $rows['id'] ?>">
<button class="btn btn-danger delete">删除</button>
</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
下篇 PHP 从结果集合中获取对象、枚举数组、记录数、释放内存、关闭连接