Php Mysql 简明教程
PHP & MySQL - Overview
MySQL 可与 PERL、C、C++、JAVA 和 PHP 等各种编程语言完美结合使用。在这些语言中,PHP 因其 Web 应用程序开发功能而最受欢迎。
PHP 提供了各种功能来访问 MySQL 数据库并在 MySQL 数据库中操作数据记录。您需要像调用任何其他 PHP 函数一样调用 PHP 函数。
用于 MySQL 的 PHP 函数采用以下常规格式:
mysql_function(value,value,...);
函数名的第二部分特定于函数,通常是一个描述函数执行操作的单词。以下是我们将在本教程中使用的两个函数:
mysqli_connect($connect);
mysqli_query($connect,"SQL statement");
以下示例显示 PHP 调用任何 MySQL 函数的通用语法。
<html>
<head>
<title>PHP with MySQL</title>
</head>
<body>
<?php
$retval = mysql_function(value, [value,...]);
if( !$retval ) {
die ( "Error: a related error message" );
}
// Otherwise MySQL or PHP Statements
?>
</body>
</html>
从下一章开始,我们将看到所有重要的 MySQL 功能以及 PHP。
PHP & MySQL - Environment Setup
为了开发和运行 PHP 网页,您的计算机系统上需要安装三个重要组件。
-
Web Server − PHP 能够与几乎所有的 Web 服务器软件一起运行,包括 Microsoft 的 Internet 信息服务器 (IIS),但最常使用的是 Apache 服务器。请在此免费下载 Apache − https://httpd.apache.org/download.cgi
-
Database − PHP 能够与几乎所有的数据库软件一起运行,包括 Oracle 和 Sybase,但最常使用的是 MySQL 数据库。请在此免费下载 MySQL − https://www.mysql.com/downloads/
-
PHP Parser − 为了处理 PHP 脚本指令,必须安装解释器来生成 HTML 输出,该输出可以发送到 Web 浏览器。本教程将指导您如何安装您计算机上的 PHP 解释器。
PHP Parser Installation
在您进行之前,在计算机上确保设置好适当的环境,以使用 PHP 开发您的网络程序非常重要。将以下 php 文件储存在 Apache 的 htdocs 文件夹中。
phpinfo.php
<?php
phpinfo();
?>
在您的浏览器的地址框中输入以下地址。
http://127.0.0.1/phpinfo.php
如果这样做会显示一个页面,显示您的 PHP 安装相关信息,则表示已正确安装了 PHP 和 Web 服务器。否则,您必须按照给定的程序在计算机上安装 PHP。
本部分将指导您在以下四个平台上安装和配置 PHP −
Install MySQL Database
当然,您将需要最重要的实际运行数据库,其中包含您可以查询和修改的表。
-
MySQL DB - MySQL 是一个开源数据库。您可以从 MySQL Official Site 下载它。我们建议下载完整的 Windows 安装。
-
此外,下载并安装 MySQL Administrator 及 MySQL Query Browser. 。它们是基于 GUI 的工具,可以让您的开发变得更加轻松。
-
最后,在方便的目录中下载并解压缩 MySQL Connector/J (MySQL JDBC 驱动程序)。出于本教程的目的,我们假设您已在 C:\Program Files\MySQL\mysql-connector-java-5.1.8 中安装了驱动程序。
-
相应地,将 CLASSPATH 变量设置为 C:\Program Files\MySQL\mysql-connector-java-5.1.8\mysql-connector-java-5.1.8-bin.jar。您的驱动程序版本可能会因您的安装而异。
Set Database Credential
当我们安装 MySQL 数据库时,它的管理员 ID 设置为 root ,并提供设置密码的选项。
使用 root ID 和密码,您可以创建另一个用户 ID 和密码,也可以为您的 JDBC 应用程序使用 root ID 和密码。
有各种数据库操作,例如数据库创建和删除,这需要管理员 ID 和密码。
对于 JDBC 教程的其余部分,我们将使用 MySQL 数据库, guest 为 ID, guest123 为密码。
如果您没有足够权限创建新用户,那么您可以请求数据库管理员 (DBA) 为您创建用户 ID 和密码。
Create Database
要创建 TUTORIALSPOINT 数据库,请执行以下步骤 −
Step 1
打开 Command Prompt 并更改到安装目录,如下所示 −
C:\>
C:\>cd Program Files\MySQL\bin
C:\Program Files\MySQL\bin>
Note − mysqld.exe 的路径可能因系统上 MySQL 的安装位置而异。您还可以查看有关如何启动和停止数据库服务器的文档。
Create Table
要创建 Employees 表中 TUTORIALSPOINT 数据库,请执行以下步骤 −
Create Data Records
最后,在 Employee 表中创建一些记录,如下所示 −
mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
mysql>
如需全面了解 MySQL 数据库,请学习 MySQL Tutorial 。
现在,您可以开始尝试使用 PHP 了。
PHP & MySQL - Connect Database Example
PHP 提供 mysqli 构造或 mysqli_connect() 函数来打开一个数据库连接。此函数采用六个参数,并且在成功时返回一个 MySQL 链接标识符,在失败时返回 FALSE。
Syntax
$mysqli = new mysqli($host, $username, $passwd, $dbName, $port, $socket);
Sr.No. |
Parameter & Description |
1 |
$host 可选 - 运行数据库服务器的主机名。如果不指定,则默认值将为 localhost:3306 。 |
2 |
$username 可选 - 访问数据库的用户名。如果不指定,则默认值将为作为服务器进程所有者用户的名称。 |
3 |
$passwd 可选 - 访问数据库的用户的密码。如果不指定,则默认值将为空密码。 |
4 |
$dbName 可选 - 要执行查询的数据库名称。 |
5 |
$port 可选 - 要尝试连接到 MySQL 服务器的端口号。 |
6 |
$socket 可选 - 应使用的套接字或命名管道。 |
你可以随时使用另一个 PHP 函数 close() 来断开 MySQL 数据库连接。
Example
尝试以下示例以连接到 MySQL 服务器 −
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Connecting MySQL Server</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Create Database Example
PHP 使用 mysqli query() 或 mysql_query() 函数来创建或删除 MySQL 数据库。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - 创建 MySQL 数据库的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试以下示例来创建数据库 −
将以下示例复制粘贴为 mysql_example.php:
<html>
<head><title>Creating MySQL Database</title></head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query("CREATE DATABASE TUTORIALS")) {
printf("Database TUTORIALS created successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not create database: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Drop Database Example
PHP 使用 mysqli query() 或 mysql_query() 函数来删除 MySQL 数据库。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - SQL 查询以删除 MySQL 数据库。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试以下示例来删除数据库−
将以下示例复制粘贴为 mysql_example.php:
<html>
<head><title>Dropping MySQL Database</title></head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query("Drop DATABASE TUTORIALS")) {
printf("Database TUTORIALS dropped successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not drop database: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Select Database Example
PHP 使用 mysqli_select_db 函数来选择要执行查询的数据库。此函数接受两个参数,并成功时返回 TRUE,失败时返回 FALSE。
Syntax
mysqli_select_db ( mysqli $link , string $dbname ) : bool
Sr.No. |
Parameter & Description |
1 |
$link 必需 - mysqli_connect() 或 mysqli_init() 返回的链接标识符。 |
2 |
$dbname 必需 - 要连接的数据库的名称。 |
Example
尝试以下示例以选择数据库 −
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Selecting MySQL Database</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysqli_error($conn));
}
echo 'Connected successfully<br />';
$retval = mysqli_select_db( $conn, 'TUTORIALS' );
if(! $retval ) {
die('Could not select database: ' . mysqli_error($conn));
}
echo "Database TUTORIALS selected successfully\n";
mysqli_close($conn);
?>
</body>
</html>
PHP & MySQL - Create Table
PHP 使用 mysqli query() 或 mysql_query() 函数来创建 MySQL 表。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - 创建 MySQL 表的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试以下示例以创建一个表 −
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Creating MySQL Table</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = "CREATE TABLE tutorials_tbl( ".
"tutorial_id INT NOT NULL AUTO_INCREMENT, ".
"tutorial_title VARCHAR(100) NOT NULL, ".
"tutorial_author VARCHAR(40) NOT NULL, ".
"submission_date DATE, ".
"PRIMARY KEY ( tutorial_id )); ";
if ($mysqli->query($sql)) {
printf("Table tutorials_tbl created successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not create table: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Drop Table Example
PHP 使用 mysqli query() 或 mysql_query() 函数来删除 MySQL 表。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必填 - 用来删除表的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试以下示例来删除一个表格 −
将以下示例复制粘贴为 mysql_example.php:
<html>
<head><title>Dropping MySQL Table</title></head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query("Drop Table tutorials_tbl")) {
printf("Table tutorials_tbl dropped successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not drop table: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Insert Records Example
PHP 使用 mysqli_query 函数在表中插入记录。此函数采用三个参数,成功时返回 TRUE,失败时返回 FALSE。
Syntax
mysqli_query ( mysqli $link, string $query, int $resultmode = MYSQLI_STORE_RESULT ) : mixed
Sr.No. |
Parameter & Description |
1 |
$link 必需 - mysqli_connect() 或 mysqli_init() 返回的链接标识符。 |
2 |
$query 必填项 - SQL 查询以删除表。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
此示例会从用户那里获取三个参数,并将它们插入 MySQL 表格 -
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Add New Record in MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['add'])) {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysqli_error($conn));
}
if(! get_magic_quotes_gpc() ) {
$tutorial_title = addslashes ($_POST['tutorial_title']);
$tutorial_author = addslashes ($_POST['tutorial_author']);
} else {
$tutorial_title = $_POST['tutorial_title'];
$tutorial_author = $_POST['tutorial_author'];
}
$submission_date = $_POST['submission_date'];
$sql = "INSERT INTO tutorials_tbl ".
"(tutorial_title,tutorial_author, submission_date) "."VALUES ".
"('$tutorial_title','$tutorial_author','$submission_date')";
mysqli_select_db( $conn, 'TUTORIALS' );
$retval = mysqli_query( $conn, $sql );
if(! $retval ) {
die('Could not enter data: ' . mysqli_error($conn));
}
echo "Entered data successfully\n";
mysqli_close($conn);
} else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "600" border = "0" cellspacing = "1" cellpadding = "2">
<tr>
<td width = "250">Tutorial Title</td>
<td><input name = "tutorial_title" type = "text" id = "tutorial_title"></td>
</tr>
<tr>
<td width = "250">Tutorial Author</td>
<td><input name = "tutorial_author" type = "text" id = "tutorial_author"></td>
</tr>
<tr>
<td width = "250">Submission Date [ yyyy-mm-dd ]</td>
<td><input name = "submission_date" type = "text" id = "submission_date"></td>
</tr>
<tr>
<td width = "250"> </td>
<td></td>
</tr>
<tr>
<td width = "250"> </td>
<td><input name = "add" type = "submit" id = "add" value = "Add Tutorial"></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
PHP & MySQL - Select Records Example
您可以将相同的 SQL SELECT 命令用于 PHP 函数 mysql_query() 。此函数用于执行 SQL 命令,然后稍后可以使用另一个 PHP 函数 mysql_fetch_array() 来获取所有选定的数据。此函数将行作为关联数组、数字数组或两者返回。如果不再有行,则此函数将返回 FALSE。
以下程序是一个简单的示例,它将展示如何从 tutorials_tbl 表中获取/显示记录。
Example
以下代码块将显示 tutorials_tbl 表中的所有记录。
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Selecting Records</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysqli_error($conn));
}
echo 'Connected successfully<br />';
mysqli_select_db( $conn, 'TUTORIALS' );
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl";
$retval = mysqli_query( $conn, $sql );
if(! $retval ) {
die('Could not get data: ' . mysqli_error($conn));
}
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC)) {
echo "Tutorial ID :{$row['tutorial_id']} ".
"Title: {$row['tutorial_title']} ".
"Author: {$row['tutorial_author']} ".
"Submission Date : {$row['submission_date']} ".
"--------------------------------";
}
echo "Fetched data successfully\n";
mysqli_close($conn);
?>
</body>
</html>
PHP & MySQL - Update Records Example
PHP 使用 mysqli query() 或 mysql_query() 函数来更新 MySQL 表中的记录。此函数接收两个参数,成功时返回 TRUE,失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - 更新 MySQL 表中记录的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试使用以下示例来更新表中的记录-
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Updating MySQL Table</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query('UPDATE tutorials_tbl set tutorial_title = "Learning Java" where tutorial_id = 4')) {
printf("Table tutorials_tbl updated successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not update table: %s<br />", $mysqli->error);
}
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
Output
访问在 apache web 服务器上部署的 mysql_example.php,并验证输出。在运行选择脚本之前,我们在此表中输入了多条记录。
Connected successfully.
Table tutorials_tbl updated successfully.
Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021
Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021
Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021
Id: 4, Title: Learning Java, Author: Mahesh, Date: 2021
Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021
PHP & MySQL - Delete Records Example
PHP 使用 mysqli query() 或 mysql_query() 函数来删除 MySQL 表中的记录。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - 删除 MySQL 表中记录的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试使用以下示例来删除表中的记录 -
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Deleting MySQL Table record</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query('DELETE FROM tutorials_tbl where tutorial_id = 4')) {
printf("Table tutorials_tbl record deleted successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not delete record from table: %s<br />", $mysqli->error);
}
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
Output
访问在 apache web 服务器上部署的 mysql_example.php,并验证输出。在运行选择脚本之前,我们在此表中输入了多条记录。
Connected successfully.
Table tutorials_tbl record deleted successfully.
Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021
Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021
Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021
Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021
PHP & MySQL - Where Clause Example
PHP 使用 mysqli query() 或 mysql_query() 函数通过 where 子句选择 MySQL 表中的记录。此函数接受两个参数,并在成功时返回 TRUE,在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql Required - 使用 Where 子句选择 MySQL 表中记录的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试以下示例,通过表中的 where 子句选择记录 −
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Using Where Clause</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl where tutorial_author = "Mahesh"';
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Like Clause Example
PHP 使用 mysqli query() 或 mysql_query() 函数使用 Like 子句来选择 MySQL 表中的记录。此函数接受两个参数并在成功时返回 TRUE,在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - 使用 Like 子句在 MySQL 表中选择记录的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试以下示例,以在表中使用 like 子句选择记录 -
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Using Like Clause</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl where tutorial_author like "Mah%"';
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Sorting Data Example
PHP 使用 mysqli query() 或 mysql_query() 函数从 MySQL 表中获取排序记录。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - 从表中获取排序记录的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
Example
尝试使用以下示例从表中获取排序记录 -
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Sorting MySQL Table records</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl order by tutorial_title asc";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
Output
访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。
Connected successfully.
Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021
Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021
Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021
Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021
PHP & MySQL - Using Joins Example
PHP 使用 mysqli query() 或 mysql_query() 函数来使用联接从 MySQL 表中获取记录。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。
Syntax
$mysqli->query($sql,$resultmode)
Sr.No. |
Parameter & Description |
1 |
$sql 必需 - 使用连接从多个表获取记录的 SQL 查询。 |
2 |
$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。 |
首先使用以下脚本在 MySQL 中创建表并插入两条记录。
create table tcount_tbl(
tutorial_author VARCHAR(40) NOT NULL,
tutorial_count int
);
insert into tcount_tbl values('Mahesh', 3);
insert into tcount_tbl values('Suresh', 1);
Example
尝试以下示例以使用连接获取两个表中的记录。−
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Using joins on MySQL Tables</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = 'SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
FROM tutorials_tbl a, tcount_tbl b
WHERE a.tutorial_author = b.tutorial_author';
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Author: %s, Count: %d <br />",
$row["tutorial_id"],
$row["tutorial_author"],
$row["tutorial_count"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Handling NULL Example
可以使用 if…else 条件根据 NULL 值准备查询。
以下示例从外部获取 tutorial_count,然后将其与表中可用值进行比较。
Example
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Handling NULL</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
$tutorial_count = null;
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if( isset($tutorial_count )) {
$sql = 'SELECT tutorial_author, tutorial_count
FROM tcount_tbl
WHERE tutorial_count = ' + $tutorial_count;
} else {
$sql = 'SELECT tutorial_author, tutorial_count
FROM tcount_tbl
WHERE tutorial_count IS NULL';
}
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Author: %s, Count: %d <br />",
$row["tutorial_author"],
$row["tutorial_count"]);
}
} else {
printf('No record found.<br />');
}
$mysqli->close();
?>
</body>
</html>
PHP & MySQL - Database Info Example
MySQL 中有几个重要命令可以在 MySQL 提示符处执行,也可以使用 PHP 等任何脚本来获取有关数据库服务器的各种重要信息。
Sr.No. |
Command & Description |
1 |
SELECT VERSION( ) 服务器版本字符串 |
2 |
SELECT DATABASE( ) 当前数据库名称(如果没有则为空) |
3 |
SELECT USER( ) Current username |
4 |
SHOW STATUS Server status indicators |
5 |
SHOW VARIABLES Server configuration variables |
Example
尝试以下示例以获取数据库信息 −
将以下示例复制粘贴为 mysql_example.php:
<html>
<head>
<title>Getting MySQL Database Info</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
$tutorial_count = null;
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($result = mysqli_query($mysqli, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("Default database is %s<br />", $row[0]);
mysqli_free_result($result);
}
$mysqli->close();
?>
</body>
</html>