In web development, the database is a very important component. As a scripting language, PHP is ideal for writing code that interacts with databases. PHP provides a variety of ways to operate the database, including native MySQL functions, PDO, and higher-level ORM frameworks. In this article, we will explain how to work with databases in PHP.
- PHP interacts with MySQL
MySQL is a popular relational database management system and one of the most commonly used databases for PHP. PHP provides a series of native MySQL functions that can be used to connect to the MySQL database, query data, insert data, modify data and delete data. The following is a basic sample code to connect to a local MySQL database and query all data in the users table:
<?php // 连接 MySQL 数据库 $link = mysqli_connect("localhost", "username", "password", "database_name"); // 检查连接是否成功 if ($link === false) { die("Error: Could not connect. " . mysqli_connect_error()); } // 查询 users 表中的所有数据 $sql = "SELECT * FROM users"; if ($result = mysqli_query($link, $sql)) { // 打印结果 if (mysqli_num_rows($result) > 0) { while ($row = mysqli_fetch_array($result)) { echo $row['id'] . " " . $row['name'] . " " . $row['email']; echo "<br>"; } // 释放结果集资源 mysqli_free_result($result); } else { echo "No records found."; } } else { echo "Error: Could not able to execute $sql. " . mysqli_error($link); } // 关闭连接 mysqli_close($link); ?>
In the above code, we first use the mysqli_connect() function to connect to the MySQL database. We then query all the data in the users table, using the mysqli_query() function to execute the SQL statement and return the result set. Finally, we use the mysqli_fetch_array() function to obtain the query results row by row and output them to the page. Use the mysqli_free_result() function to release result set resources, and use the mysqli_close() function to close the connection.
- PHP PDO interacts with MySQL
PDO is a lightweight database abstraction layer of PHP that supports a variety of databases and provides simpler and more efficient database operations. Methods. Using PDO, we can use a single code base to operate multiple types of databases without changing the code. The following is a basic sample code, connect to the local MySQL database, query all data in the users table:
<?php // 连接 MySQL 数据库 $dsn = "mysql:host=localhost;dbname=database_name"; $username = "username"; $password = "password"; // 创建 PDO 实例 try { $pdo = new PDO($dsn, $username, $password); } catch (PDOException $e) { die("Error: Could not connect. " . $e->getMessage()); } // 查询 users 表中的所有数据 $sql = "SELECT * FROM users"; if ($result = $pdo->query($sql)) { // 打印结果 if ($result->rowCount() > 0) { while ($row = $result->fetch()) { echo $row['id'] . " " . $row['name'] . " " . $row['email']; echo "<br>"; } } else { echo "No records found."; } } else { echo "Error: Could not able to execute $sql. " . $pdo->errorInfo(); } // 关闭连接 $pdo = null; ?>
In the above code, we first create a PDO instance, using $dsn, $username and $password Connect to the MySQL database. We then query all the data in the users table, using the $pdo->query() function to execute the SQL statement and return the result set. Finally, we use the $result->fetch() function to fetch the query results row by row and output them to the page. Close the connection using the $pdo = null; statement.
- PHP ORM framework interacts with MySQL
ORM (Object Relational Mapping, object relational mapping) is a software framework used to establish mapping between objects and relational databases . The ORM framework is a high-level library that helps us develop and maintain applications more quickly. There are multiple ORM frameworks to choose from in PHP, including Laravel's Eloquent, Symfony's Doctrine, Yii2's ActiveRecord, etc. The following is a basic sample code that uses Eloquent ORM to connect to a local MySQL database and query all data in the users table:
<?php // 引入 Eloquent ORM 类 require_once "vendor/autoload.php"; use IlluminateDatabaseCapsuleManager as Capsule; // 创建 Eloquent ORM 实例 $capsule = new Capsule; // 配置数据库连接信息 $capsule->addConnection([ "driver" => "mysql", "host" => "localhost", "database" => "database_name", "username" => "username", "password" => "password", ]); // 启动 Eloquent ORM $capsule->bootEloquent(); // 查询 users 表中的所有数据 $users = Capsule::table("users")->get(); // 打印结果 if (count($users) > 0) { foreach ($users as $user) { echo $user->id . " " . $user->name . " " . $user->email; echo "<br>"; } } else { echo "No records found."; } ?>
In the above code, we first use Composer to install Eloquent ORM and introduce the corresponding classes . Then we create a Capsule instance and add database connection information. Start the Eloquent ORM using the $capsule->bootEloquent() function. Finally, we use the Capsule::table() function to query all the data in the users table and use a foreach loop to output it to the page row by row.
Conclusion
When operating databases in PHP, we have many choices. You can easily connect to the MySQL database using native MySQL functions, but the amount of code is relatively cumbersome. PDO can be used to connect to many types of databases and provides some efficient operation methods. Using an ORM framework can greatly simplify our code development and provide higher stability and maintainability. We need to choose the most appropriate method based on the specific needs of the project.
The above is the detailed content of How to operate database in PHP?. For more information, please follow other related articles on the PHP Chinese website!

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

The Storage::download method of the Laravel framework provides a concise API for safely handling file downloads while managing abstractions of file storage. Here is an example of using Storage::download() in the example controller:

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

PHP logging is essential for monitoring and debugging web applications, as well as capturing critical events, errors, and runtime behavior. It provides valuable insights into system performance, helps identify issues, and supports faster troubleshoot

Laravel's service container and service providers are fundamental to its architecture. This article explores service containers, details service provider creation, registration, and demonstrates practical usage with examples. We'll begin with an ove


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Linux new version
SublimeText3 Linux latest version

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

WebStorm Mac version
Useful JavaScript development tools

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
