PHP入门之MySQL基本语法和基本操作

Web TOMORROW 2个月前 (10-10) 210次浏览 0个评论 扫描二维码
文章目录[隐藏]

使用 PHP 对 MySQL 进行操作可以分为两步。

  • 第一步是使用 PHP 与 MySQL 建立连接;
  • 第二步是使用 PHP 执行 SQL 查询语言(包括增、删、改、查)。

 

使用 PHP 与 MySQL 建立连接

PHP 中对 MySQL 进行操作,常用的是 mysqli 这个类,在将 mysqli 实例化的过程,其实就是连接 MySQL 数据库的过程。

连接数据库需要四个参数:数据库主机地址、数据库用户名、密码、数据库名。

<?php
$host = "localhost";
$user = "root";
$psw = "KyHojzzUAIfh1dEn";
$db = "phptest";

$phptest = new mysqli($host, $user, $psw, $db);

if($phptest){
	echo "Connection is successful</br>";
}
else
	echo "Failed to connect database</br>";

?>

主机地址、用户名等参数需要根据实际情况修改。

执行结果:

Connection is successful

 

MySQL 查询操作

使用 PHP 对 MySQL 进行查询操作包括增、删、改、查四类。具体操作也是基于 mysqli 类来进行。

增加数据也就是插入数据。MySQL 对某个数据表进行插入数据的语法是这样的:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

其中 table_name 就是待插入数据的表名,field 表示字段名(列名),而 value 表示与字段对应的值。

测试用的数据库 phptest 中只有一个表 tab1,该表包含 5 个字段,表初始为空:

PHP 入门之 MySQL 基本语法和基本操作

PHP 中需要通过 mysqli::query()方法来执行 MySQL 查询语言。下面插入时只填写部分字段的数据。

<?php
/*
此处省去了上面连接数据库的部分,请自行补全
*/
//插入数据
$result = $phptest->query("INSERT INTO tab1 ( user_name, email, content )
                       			VALUES
                       			( 'tomorrow', '1107150012@qq.com','hello MySQL' )");
if($result)
	echo "Insert successfully</br>";
else
	echo "Failed</br>"
?>

 

执行以上代码后数据库工具查询可以看到 tab1 中已经多了一行数据,并且数据内容是与代码中所插入的内容一致的:

PHP 入门之 MySQL 基本语法和基本操作

 

MySQL 删除数据的语法是这样的:

DELETE FROM table_name [WHERE Clause]

[WHERE Clause]表示的是一个条件,执行上面语句就是将 table_name 中符合[WHERE Clause]条件的所有数据删除。

在测试前,先在数据表中写入 5 行数据。

PHP 入门之 MySQL 基本语法和基本操作

执行删除语句同样使用 mysqli::query()方法:

<?php
/*
此处省去了上面连接数据库的部分,请自行补全
*/
//删除数据
$result = $phptest->query("DELETE FROM tab1 WHERE id>2 AND email='123'");
if($result)
	echo "Delete successfully</br>";
else
	echo "Failed</br>"

?>

执行以上代码后,数据表中 id>2 且 email=‘123’的数据都被删除了

PHP 入门之 MySQL 基本语法和基本操作

 

改,也可以称作更新 update,修改数据的SQL 语法如下:

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

跟上面的语法类似,全大写的是 SQL 关键字,table_name 是要修改的表名,field 表示字段名,new-value 表示新的值。

修改测试前 tab1 是这样的

PHP 入门之 MySQL 基本语法和基本操作

具体的 PHP 代码:

<?php
/*
此处省去了上面连接数据库的部分,请自行补全
*/
//修改数据
$result = $phptest->query("UPDATE tab1 SET email='hello@tomorrow.wiki',content='Ha, It is latest!!!!' 
								WHERE id<3 AND user_name='tomorrow'");
if($result)
	echo "Update successfully</br>";
else
	echo "Failed</br>"

?>

执行以上代码后:

PHP 入门之 MySQL 基本语法和基本操作

 

SQL 查询的语法如下:

SELECT column_name1,column_name2...
FROM table_name
[WHERE Clause]

column_name表示列名,也即字段名,该语法表示从某一个表中查询符合条件的选中的列数据。下面举个例子就明白了。

<?php
/*
此处省去了上面连接数据库的部分,请自行补全
*/
// 设置编码,防止中文乱码
mysqli_query($phptest , "set names utf8");
//查询数据
$result = $phptest->query("SELECT id,user_name,content FROM tab1 WHERE id<6 AND email LIKE '%@tomorrow.wiki' ");
if($result)
	echo "SELECT successfully</br>";
else
	echo "Failed</br>";

//打印输出查询结果
$row = $result->fetch_array(MYSQLI_ASSOC);
while ($row) {
	echo "用户 ID:".$row["id"] . "</br>用户名:" . $row["user_name"] . "</br>内容:" . $row["content"] . "</br>" ;
	echo "--------------------------------------------</br>";
	$row = $result->fetch_array(MYSQLI_ASSOC);
}

?>

 

数据库中的数据与查询得到的数据对比:

PHP 入门之 MySQL 基本语法和基本操作

PHP 代码执行得到的查询结果:

Connection is successful
SELECT successfully
用户 ID:1
用户名:tomorrow
内容:Ha, It is latest!!!!
--------------------------------------------
用户 ID:4
用户名:YOU
内容:这是一个简单的例子!!!!
--------------------------------------------
用户 ID:5
用户名:Hodor
内容:这是一个简单的例子!!!! 这是一个简单的例子!!!! 这是一个简单的例子!!!!
--------------------------------------------

SELECT id,user_name,content FROM tab1 WHERE id<6 AND email LIKE '%@tomorrow.wiki' 这条 SQL 查询语句表示的是,从表 tab1 中,查询 id<6 且 email 像@tomorrow.wiki 这样的数据,然后返回 id,user_name,content 对应的数据。没有被选中的列数据是不会返回的。

 

再来说说上面 PHP 代码,$phptest->query()执行的如果是SELECT 语句并且成功的话,返回的是一个 mysqli_result 对象。

mysqli_result 该类有一个方法 fetch_array(),MYSQLI_ASSOC 是一个常量(表示关联数组),执行$result->fetch_array(MYSQLI_ASSOC)返回的是 MySQL 查询结果中的最新一行数据(关联数组的方式),并且会将该行数据从$result结果中删除。

所以,再次执行$result->fetch_array(MYSQLI_ASSOC)得到的结果是和上一次执行的是不一样的,每执行一次返回一行数据并删除,直到$result中没有数据,就返回 NULL。

 

 


TOMORROW 星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 入门之 MySQL 基本语法和基本操作
喜欢 (0)
TOMORROW
关于作者:
TOMORROW星辰第一作者。如有疑问或者发现错误,请留言作者。
平常的小虾米发表我的评论  如需接收评论回复通知,请填写正确的 个人信息
取消评论
表情 加粗 斜体 签到