sql >> データベース >  >> RDS >> Mysql

PHPとMySQLを使用して簡単なCRUDを簡単に作成する方法

    このMySQLシリーズの前回の記事では、MySQLでのテーブル操作の概要を説明しました。チュートリアルシリーズのこのパートでは、 insert を実行して、PHPとMySQLでCRUDを作成する方法を説明します。 、更新 および削除 クエリ。これらのクエリは、次の方法で実行できます。

    単一クエリの実行

    一度に1つのクエリを実行します。 PHPMySQLのホスティングで以前に作成したデータベースにデータを挿入することから始めましょう。 「練習」フォルダに新しいphpファイルを作成します 」を以前に作成し、crud.phpという名前を付けました。 CRUDは、Create、Read、Update、およびDeleteクエリの略語です。新しいファイルで、この行を上部に追加します require_once‘db_connection.php’ この新しい関数を作成します:

    require_once 'db_connection.php';
    
    function SingleQuery($queri)
    {
    	$conn = OpenCon();
    	
    	
    	if($conn->query($queri) === TRUE)
    	{
    		CloseCon($conn);
    		return true;
    	}
    	else
    	{
    		return $conn->error;
    	}
    
    }

    この関数は、必要なクエリとして1つのパラメーターを受け取り、それを実行します。次に、同じフォルダに新しいファイルindex2.phpを作成し、上部にこの行 require_once‘crud.php’を追加します。 次に、これらの行をindex2.phpに追加します。

    include 'crud.php';
    
    $sql = "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('w','w','[email protected]','First Insert Using Single Query')";
    
    $result = SingleQuery($sql);
    
    if($result === true)
    {
    	echo 'success';
    	
    }
    else
    {
    	echo $result;
    }

    次に、ブラウザを開いてlocalhost / Practice / index2.phpに移動します。正しいクエリを入力すると、成功するでしょう。

    マルチクエリの実行

    この方法を使用すると、複数の挿入を実行できます。 、選択 または更新 クエリ。 マルチインサートの関数を書くことから始めましょう または更新 クエリ。この新しい関数をcrud.phpファイルに記述します

    function MultiQuery($quries)
    {
    	$conn = OpenCon();
    	
    	
    	if($conn->multi_query($quries) === true)
    	{
    		CloseCon($conn);
    		return true;
    	}
    	else
    	{
    		return $conn->error;
    	}
    }

    この関数は、必要なクエリとして1つのパラメーターを受け取り、それを実行します。次に、index2.phpでこの関数を呼び出します:

    include 'crud.php';
    
    $sql = "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('a','a','[email protected]','First Insert Using Multiple Queries');";
    $sql .= "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('b','b','[email protected]','First Insert Using Multiple Queries');";
    $sql .= "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('c','c','[email protected]','First Insert Using Multiple Queries');";
    
    $result = MultiQuery($sql);
    
    if($result === true)
    {
     echo 'success';
     
    }
    else
    {
     echo $result;
    }

    次に、ブラウザを開いてlocalhost / Practice / index2.phpに移動します。正しいクエリを入力すると、成功するでしょう。


    PHPアプリをクラウドにデプロイするほど簡単なことはありません

    Cloudwaysを使用すると、PHPアプリをマネージドクラウドサーバーでわずか数分で稼働させることができます。

    無料で開始


    PHPおよびMySQLのCRUDとプリペアドステートメント

    プリペアドステートメントは、同じクエリを高効率で複数回実行するために使用されます。次に、この新しい関数をcrud.phpファイルに記述します。

    function PreQuery($fname,$lname,$email,$subj)
    {
    	$conn = OpenCon();
    	$query = $conn->prepare("INSERT INTO myguests(firstname, lastname, email, subject) VALUES (?,?,?,?)");
    	$query->bind_param("ssss", $fname,$lname,$email,$subj);
    	
    	if($query->execute())
    	{
    		CloseCon($conn);
    		return true;
    	}
    	else
    	{
    		return $conn->error;
    	}
    	
    
    }

    プリペアドステートメントを使用してデータを選択します。プリペアドステートメントがどのように機能するか見てみましょう:

    1. 最初に、INSERT INTO myguests(firstname、lastname、email、subject)VALUES(?、?、?、?)のようなステートメントを準備します。 を残しましたか? 値を挿入する場所。
    2. 次に、これらの値をバインドします。最初のパラメータは、値のデータ型を取得し、その後、値を取得します。データ型引数には4つの型があります。
      1. i –整数
      2. s –文字列
      3. d –ダブル
      4. b –ブロブ
    3. 実行します。

    この関数は、必要な値として4つのパラメーターを受け取り、それを実行します。次に、index2.phpでこの関数を呼び出します:

    include 'crud.php';
    
    $firstn = "Ahmed";
    $lastn = "Khan";
    $email = "[email protected]";
    $subject = "Inserting Data using prepared Query";
    $result = PreQuery($firstn,$lastn,$email,$subject);
    
    if($result === true)
    {
    	echo 'success';
    	
    }
    else
    {
    	echo $result;
    }

    次に、ブラウザを開いてlocalhost / Practice / index2.phpに移動します。正しいクエリを入力すると、成功します。

    クエリ実行の選択

    次に、単一のクエリ実行を使用して、MySQLデータベースからデータを選択しましょう。以下に記述されているcrud.phpに新しい関数を記述します:

    function selectdata($sql)
    {
    	$conn = OpenCon();
    	
    	$result = $conn->query($sql);
    	if($result)
    	{
    		if($result->num_rows > 0)
    		{
    			return $result;
    		}
    		else
    		{
    			return "zero";
    		}
    	}
    	else
    	{
    		return $result->error;
    	}
    }

    この関数は、最初にクエリが正常に実行されたことを確認します。そうでない場合は、エラーを送信します。次に、行数が0より大きいかどうかをチェックします。その場合、「ゼロの結果が見つかりました」を送信します。ここで、index2.phpでこの関数を呼び出し、次のコードを記述します。

    <table>
     <tr>
     <td> Name</td>
     <td> Email</td>
     <td> Message</td>
     </tr>
    <?php
    include 'crud.php';
    
    $sql = "SELECT * FROM `myguests`";
    
    $result = selectdata($sql);
    
    if($result != "zero")
    {
     
     while($row = $result->fetch_assoc())
     {
     echo "<tr>";
     echo "<td>" . $row['firstname'].' '.$row['lastname'] . "</td>";
     echo "<td>" . $row['email']. "</td>"; 
     echo "<td>" . $row['subject']. "</td>"; 
     echo "</tr>";
    
     }
     
     
    }
    else
    {
     echo $result;
    }
    ?>
     </table>

    この後、ブラウザを開いてlocalhost / Practice / index2.phpに移動すると、データベース内のすべてのデータストアがindex2.phpページに表示されます。

    プリペアドステートメントを使用してクエリを更新

    crud.phpファイルに新しい関数を記述してupdateステートメントを実行しましょう:

    function UpdateQuery($column,$value,$id)
    {
    $conn = OpenCon();
    $query = $conn->prepare("UPDATE myguests SET $column = ? WHERE id = ?");
    $query->bind_param("si",$value,$id);
    
    if($query->execute())
    {
    CloseCon($conn);
    return true;
    }
    else
    {
    return $conn->error;
    }
    }

    更新パラメーターは3つのパラメーターを取ります。 1つは更新が必要な列名、2つ目は前の値に置き換えられる値、3つ目は変更される行のIDです。次に、index2.phpでこの関数を実行します:

    include 'crud.php';
    
    
    $result = UpdateQuery("firstname","David",1);
    
    if($result === true)
    {
    	echo 'success';
    	
    }
    else
    {
    	echo $result;
    }
    
    

    それが終わったら、ブラウザを開いてlocalhost / Practice / index2.phpに移動します。エラーがなければ、成功します。

    プリペアドステートメントを使用してクエリを削除

    crud.phpファイルに新しい関数を記述して、deleteステートメントを実行しましょう:

    function DeleteQuery($id)
    {
    $conn = OpenCon();
    	$query = $conn->prepare("DELETE FROM myguests WHERE id = ?");
    	$query->bind_param("i",$id);
    	//var_dump($query);
    
    	
    	if($query->execute())
    	{
    		CloseCon($conn);
    		return true;
    	}
    	else
    	{
    		return $conn->error;
    	}
    }

    削除パラメーターは、テーブルから削除する必要のある行のIDとなる1つのパラメーターを取ります。次に、index2.phpでこの関数を実行します:

    include 'crud.php';
    
    $result = DeleteQuery(1);
    
    if($result === true)
    {
    	echo 'success';
    	
    }
    else
    {
    	echo $result;
    }

    その後、ブラウザを開いてlocalhost / Practice / index2.phpに移動すると、エラーがなければ成功します。

    結論

    このチュートリアルでは、3つの異なる方法を使用してPHPとMySQLでCRUDを実行する方法を学びました。このMySQLシリーズの次回の記事では、MySQLデータフェッチ句について説明します。これは、このMySQLシリーズの主要なトピックの簡単な紹介とリストです。

    このチュートリアルで学んだことについて質問がある場合は、以下にコメントしてください。幸運を! 🙂


    1. SQL Serverのクエリ最適化手法:クエリのパフォーマンスを向上させるための5つのベストプラクティス

    2. 50以上の列名を入力せずに同じテーブルの行をコピーする(2つの列を変更する場合)

    3. PostgreSQLは世界最高のデータベースです

    4. SQL Server(T-SQL)で日付から曜日名を取得する3つの方法