- PHP と MySQL は、動的な Web 開発に不可欠なツールです。
- 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 の公式 Web サイトから無料でダウンロードしてインストールできるオープン ソースのリレーショナル データベース管理システムです。
データベースの作成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クエリ
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クエリ
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クエリ
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」の列を持つ「users」というテーブルがあるとします。テーブル内のすべてのレコードを表示したいと思います。やり方は次のとおりです:
<?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 クエリでアスタリスク (*) を使用して、「users」テーブルからすべての列を選択しました。次に、while ループを使用して結果を反復処理し、HTML テーブルに表示します。 MySQL で「IF」関数を使用する方法についてのさらなる例が必要な場合は、[if-else MySQL と例](https://informatecdigital.com/if-else-mysql-con-ejemplos/) を参照してください。
例2: テーブルに新しいレコードを挿入する
「users」テーブルに新しいユーザーを挿入するとします。新しいユーザーのIDは1、名前は「John Doe」、メールアドレスは「john@example.com「。やり方は次のとおりです:
<?php
$consulta = "INSERT INTO usuarios (id, nombre, correo) VALUES (1, 'John Doe', 'john@example.com')";
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: テーブル内の既存のレコードを更新する
「users」テーブル内のユーザー名を更新したいとします。 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: テーブルからレコードを削除する
「users」テーブルからユーザーを削除したいとします。 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 はそのデータの処理と操作に使用されます。動的で機能的なアプリケーションを作成するために、Web 開発では MySQL と PHP を組み合わせるのが一般的です。ただし、より詳細な分析に興味がある場合は、[MySQL の利点と欠点、完全な分析](https://informatecdigital.com/mysql-ventajas-y-desventajas-un-analisis-completo/) を確認してください。
PHP の MySQL クエリでデータをエスケープすることが重要なのはなぜですか?
SQL インジェクション攻撃を防ぐために、PHP で MySQL クエリのデータをエスケープすることが重要です。 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 の可能性を最大限に活用してください。