- PHP 和 MySQL 是動態網頁開發的必備工具。
- MySQL 查詢可讓您執行讀取、插入和更新資料等操作。
- 使用安全措施來防止 SQL 注入至關重要。
- 文件和實作是掌握 PHP 中的 MySQL 查詢的關鍵。
PHP 程式語言和 MySQL 資料庫管理系統是 Web 開發中強大且受歡迎的工具。 PHP 和 MySQL 的結合可讓您建立動態且功能齊全的 Web 應用程式。在本文中,我們將探討 PHP 中的 MySQL 查詢,並提供實際範例來說明如何與資料庫互動。我們將學習如何執行查詢、插入資料、更新記錄等。讓我們深入了解 PHP 中令人興奮的 MySQL 查詢世界!
PHP 中的 MySQL 查詢是什麼?
PHP 中的 MySQL 查詢是使用 PHP 程式語言與 MySQL 資料庫互動的指令或指令。這些查詢可讓您執行從資料庫讀取、插入、更新和刪除資料等操作。 PHP 提供了各種各樣的函數和方法來有效地執行 MySQL 查詢。有關更多信息,您可以查閱[MySQL 查詢和範例](https://informatecdigital.com/consultas-mysql-y-ejemplos/)。
準備環境:配置資料庫
在開始使用 PHP 中的 MySQL 查詢之前,您需要設定資料庫。以下是準備環境的一些基本步驟:
MySQL 安裝:要使用 MySQL,我們必須將其安裝到系統中。 MySQL 是一個開源的關聯式資料庫管理系統,可以從 MySQL 官方網站免費下載和安裝。
建立資料庫:安裝 MySQL 後,我們可以使用 phpMyAdmin 等管理工具建立新資料庫,或直接在 MySQL 控制台中使用 SQL 指令。
CREATE DATABASE nombre_basedatos;
建立表格:資料庫建立完成後,我們就可以在其中建立表格。表是一種包含行和列的結構,用於儲存資料。
CREATE TABLE nombre_tabla ( columna1 tipo_dato, columna2 tipo_dato, ... );
現在我們已經設定好了環境,我們可以開始在 PHP 中使用 MySQL 查詢。您可以了解有關[在 MySQL 中建立表格、範例和說明](https://informatecdigital.com/crear-tablas-en-mysql-ejemplos-y-explicaciones/)的更多資訊。
使用 PHP 執行 MySQL 查詢
連接資料庫
在進行任何查詢之前,我們必須使用正確的憑證建立與資料庫的連線。 PHP 提供函數 mysqli_connect() 建立連線。我們來看一個例子:
<?php
$host = 'localhost';
$usuario = 'nombre_usuario';
$contrasena = 'contrasena_usuario';
$basedatos = 'nombre_basedatos';
$conexion = mysqli_connect($host, $usuario, $contrasena, $basedatos);
if (!$conexion) {
die('Error al conectar: ' . mysqli_connect_error());
}
echo 'Conexión exitosa!';
?>
在上面的例子中,我們被替換了 'localhost' 與資料庫所在的主機, 'nombre_usuario' y 'contrasena_usuario' 使用存取憑證,以及 'nombre_basedatos' 使用我們要連接的資料庫的名稱。如果連線成功,則會顯示「連線成功!」訊息。
選擇查詢
SELECT 查詢用於從資料庫中檢索資料。我們可以指定列和條件來過濾結果。讓我們來看看一個如何在 PHP 中執行 SELECT 查詢的範例:
<?php
$consulta = "SELECT columna1, columna2 FROM nombre_tabla WHERE condicion";
$resultado = mysqli_query($conexion, $consulta);
if ($resultado) {
while ($fila = mysqli_fetch_assoc($resultado)) {
echo $fila['columna1'] . ' - ' . $fila['columna2'] . '<br>';
}
} else {
echo 'Error en la consulta: ' . mysqli_error($conexion);
}
mysqli_free_result($resultado);
mysqli_close($conexion);
?>
在上面的例子中,我們被替換了 'columna1' y 'columna2' 帶有我們想要恢復的列的名稱, 'nombre_tabla' 我們要在其中執行查詢的表的名稱,以及 'condicion' 使用可選條件來過濾結果。如果查詢成功,結果將顯示在瀏覽器中。如果您想深入了解查詢條件,請參閱 [MySQL 中的 where](https://informatecdigital.com/where-en-mysql/)。
插入查詢
INSERT 查詢用於將新記錄插入資料庫表。我們可以為每一列指定我們想要插入的值。讓我們來看看一個如何在 PHP 中執行 INSERT 查詢的範例:
<?php
$consulta = "INSERT INTO nombre_tabla (columna1, columna2) VALUES ('valor1', 'valor2')";
if (mysqli_query($conexion, $consulta)) {
echo 'Registro insertado exitosamente!';
} else {
echo 'Error en la consulta: ' . mysqli_error($conexion);
}
mysqli_close($conexion);
?>
在上面的例子中,我們被替換了 'nombre_tabla' 我們要插入記錄的表格的名稱, 'columna1' y 'columna2' 具有相應的列名,以及 'valor1' y 'valor2' 與我們想要插入的值。如果查詢成功則會提示「記錄插入成功!」。有關更複雜的範例,您可以訪問[MySQL 多表查詢和範例](https://informatecdigital.com/consultas-multitablas-mysql-ejemplos/)。
更新查詢
UPDATE 查詢用於更新資料庫表中的現有記錄。我們可以指定我們想要更新的值,以及條件來過濾要更新的記錄。讓我們來看一個如何在 PHP 中執行 UPDATE 查詢的範例:
<?php
$consulta = "UPDATE nombre_tabla SET columna1 = 'nuevo_valor' WHERE condicion";
if (mysqli_query($conexion, $consulta)) {
echo 'Registro actualizado exitosamente!';
} else {
echo 'Error en la consulta: ' . mysqli_error($conexion);
}
mysqli_close($conexion);
?>
在上面的例子中,我們被替換了 'nombre_tabla' 我們要執行更新的表格的名稱, 'columna1' 我們要更新的列的名稱, 'nuevo_valor' 替換為我們想要分配的新值, 'condicion' 使用可選條件來過濾要更新的記錄。若查詢成功則會顯示「記錄更新成功!」。有關 [MySQL 中的預存程序](https://informatecdigital.com/procedimientos-almacenados-en-mysql-una-guia-completa/) 的更多信息,您可以參考以下連結。
DELETE 查詢
DELETE 查詢用於從資料庫表中刪除記錄。我們可以指定條件來過濾要刪除的記錄。讓我們來看一個如何在 PHP 中執行 DELETE 查詢的範例:
<?php
$consulta = "DELETE FROM nombre_tabla WHERE condicion";
if (mysqli_query($conexion, $consulta)) {
echo 'Registro eliminado exitosamente!';
} else {
echo 'Error en la consulta: ' . mysqli_error($conexion);
}
mysqli_close($conexion);
?>
在上面的例子中,我們被替換了 'nombre_tabla' 替換為要從中刪除記錄的表的名稱,以及 'condicion' 使用可選條件來過濾要刪除的記錄。若查詢成功則會提示「記錄刪除成功!」。為了優化您的 SQL 程式碼,請考慮使用 [MySQL 中的視圖](https://informatecdigital.com/vistas-en-mysql-optimiza-tu-codigo-sql/)。
實例:PHP 中的 MySQL 查詢
現在我們已經介紹了 PHP 中 MySQL 查詢的基礎知識,讓我們來看一些實際的例子,以便更好地理解它們在 Web 開發中的使用方式。這些範例旨在說明常見的用例。
範例 1:顯示表格中的所有記錄
假設我們有一個名為「使用者」的表,其中包含「id」、「name」和「email」欄位。我們想要顯示表中的所有記錄。我們可以這樣做:
<?php
$consulta = "SELECT * FROM usuarios";
$resultado = mysqli_query($conexion, $consulta);
if ($resultado) {
echo '<table>';
echo '<tr><th>ID</th><th>Nombre</th><th>Correo</th></tr>';
while ($fila = mysqli_fetch_assoc($resultado)) {
echo '<tr>';
echo '<td>' . $fila['id'] . '</td>';
echo '<td>' . $fila['nombre'] . '</td>';
echo '<td>' . $fila['correo'] . '</td>';
echo '</tr>';
}
echo '</table>';
} else {
echo 'Error en la consulta: ' . mysqli_error($conexion);
}
mysqli_free_result($resultado);
mysqli_close($conexion);
?>
在前面的範例中,我們在 SELECT 查詢中使用星號 (*) 從「使用者」表中選擇所有欄位。然後我們使用 while 循環來迭代結果並將其顯示在 HTML 表中。如果您需要更多有關如何在 MySQL 中使用「IF」函數的範例,您可能會對[帶有範例的 if-else MySQL](https://informatecdigital.com/if-else-mysql-con-ejemplos/) 感興趣。
範例 2:向表中插入新記錄
假設我們要在「users」表中插入一個新使用者。新使用者的 ID 為 1,姓名為“John Doe”,電子郵件地址為“ [email protected] ”。我們可以這樣做:
<?php $consulta = "INSERT INTO usuarios (id, nombre, correo) VALUES (1, 'John Doe', '[email protected]')"; if (mysqli_query($conexion, $consulta)) { echo 'Registro insertado exitosamente!'; } else { echo 'Error en la consulta: ' . mysqli_error($conexion); } mysqli_close($conexion); ?>
在前面的範例中,我們為INSERT查詢中的“id”,“name”,“email”列提供了相應的值。如果查詢成功則會提示「記錄插入成功!」。此外,請考慮了解 [MySQL 使用者](https://informatecdigital.com/usuarios-en-mysql/),以便更好地管理資料。
範例 3:更新表中的現有記錄
假設我們要更新「使用者」表中使用者的姓名。我們想將 ID 為 1 的用戶的名字改為「Jane Doe」。我們可以這樣做:
<?php
$consulta = "UPDATE usuarios SET nombre = 'Jane Doe' WHERE id = 1";
if (mysqli_query($conexion, $consulta)) {
echo 'Registro actualizado exitosamente!';
} else {
echo 'Error en la consulta: ' . mysqli_error($conexion);
}
mysqli_close($conexion);
?>
在前面的範例中,我們使用了 WHERE 條件來指定要更新 ID 為 1 的記錄。有關更多信息,您可以查看[在 MySQL 中使用 HAVING](https://informatecdigital.com/uso-de-having-en-mysql/)。
範例 4:從表格中刪除記錄
假設我們想從「使用者」表中刪除一個使用者。我們要刪除 ID 為 1 的使用者。
<?php
$consulta = "DELETE FROM usuarios WHERE id = 1";
if (mysqli_query($conexion, $consulta)) {
echo 'Registro eliminado exitosamente!';
} else {
echo 'Error en la consulta: ' . mysqli_error($conexion);
}
mysqli_close($conexion);
?>
在上面的例子中,我們使用了WHERE條件來指定要刪除ID為1的記錄。不要忘記,學習 [MySQL 中的嵌套查詢](https://informatecdigital.com/consultas-anidadas-en-mysql-ejemplos-y-explicacion/) 也非常有用。
常問問題
MySQL 和 PHP 有什麼差別?
MySQL 是一種關聯式資料庫管理系統,而 PHP 是一種程式語言。 MySQL 用於儲存和檢索數據,而 PHP 用於處理和操作數據。 MySQL 和 PHP 的組合在 Web 開發中很常見,用於建立動態且功能齊全的應用程式。但是,如果您對更深入的分析感興趣,可以查看[MySQL 優點和缺點,完整分析](https://informatecdigital.com/mysql-ventajas-y-desventajas-un-analisis-completo/)。
為什麼在 PHP 中轉義 MySQL 查詢中的資料很重要?
在 PHP 中轉義 MySQL 查詢中的資料以防止 SQL 注入攻擊非常重要。 SQL 注入是駭客用來操縱傳送到資料庫的 SQL 查詢的一種技術。透過轉義數據,我們可以確保特殊字元和 SQL 語句不會被惡意解釋。如果您想閱讀有關該主題的更多信息,請查看[MySQL 的最佳 Web 資源,完整指南](https://informatecdigital.com/los-mejores-recursos-web-para-mysql-una-guia-completa/)。
除了 MySQL 和 PHP 之外,還有其他與資料庫互動的替代方案嗎?
是的,除了 MySQL 和 PHP 之外,還有其他與資料庫互動的替代方案。一些流行的替代方案是 PostgreSQL、SQLite 和 MongoDB 作為資料庫管理系統,以及 Python、Ruby 和 Java 作為程式語言。資料庫和程式語言組合的選擇取決於專案要求和開發人員的偏好。如果您正在尋找有關替代方案的更多詳細信息,可以閱讀有關 [SQL Server 的替代方案](https://informatecdigital.com/alternativas-a-sql-server/)。
在 PHP 中執行 MySQL 查詢的最佳實務是什麼?
使用 PHP 執行 MySQL 查詢的一些最佳實務包括:
- 使用準備好的語句或參數化查詢來防止 SQL 注入。
- 使用以下函數正確轉義數據
mysqli_real_escape_string()或準備好的語句。 - 在執行查詢之前驗證並過濾輸入資料。
- 使用適當的資料庫角色和權限來限制未經授權的存取。
- 使用以下方式執行查詢後關閉與資料庫的連接
mysqli_close().
之間有什麼區別 mysqli_query() y mysqli_real_query() 在 PHP 中?
mysqli_query() 它用於對資料庫執行單一 SQL 查詢並在成功時傳回結果。另一方面, mysqli_real_query() 它用於對資料庫執行以分號分隔的多個 SQL 查詢。它不傳回結果,僅驗證查詢的有效性。
如何才能了解更多關於 PHP 中 MySQL 查詢的資訊?
要了解有關 PHP 中的 MySQL 查詢的更多信息,可以查閱官方 PHP 和 MySQL 文件。您也可以瀏覽專門使用 PHP 和 MySQL 進行 Web 開發的線上教學課程、課程和書籍。透過現實生活中的範例和專案進行練習也是獲得 PHP 中 MySQL 查詢經驗和技能的好方法。如果你正在尋找 MySQL 中函數的完整指南,我推薦[在 MySQL 中建立函數](https://informatecdigital.com/crear-funciones-en-mysql/)。
結論
在本文中,我們探討了 PHP 中的 MySQL 查詢,並提供了實際範例來說明如何使用 PHP 與 MySQL 資料庫互動。我們已經介紹了 SELECT、INSERT、UPDATE 和 DELETE 查詢,以及在 PHP 中設定資料庫和建立連線的基本步驟。我們希望本指南能為您提供使用 PHP 中的 MySQL 查詢以及建立動態且功能性的 Web 應用程式所需的知識。繼續在您的下一個專案中充分利用 PHP 和 MySQL 的潛力!