sql >> Database teknologi >  >> RDS >> Mysql

Sådan laver du nemt CRUD ved hjælp af PHP og MySQL

I den forrige del af denne MySQL-serie gav jeg et overblik over tabelmanipulation i MySQL. I denne del af selvstudieserien vil jeg lære dig, hvordan du opretter CRUD i PHP og MySQL ved at udføre insert , opdatering og slet forespørgsler. Disse forespørgsler kan udføres på følgende måder.

Udførelse af enkelt forespørgsel

Den udfører en enkelt forespørgsel ad gangen. Lad os starte med at indsætte data i vores database, som vi tidligere har oprettet på vores hosting til PHP MySQL. Opret en ny php-fil i mappen "øv ”, som vi tidligere har oprettet og navngiver den crud.php. CRUD er forkortelsen for Opret, Læs, Opdater og Slet forespørgsler. Tilføj nu denne linje øverst i den nye fil require_once 'db_connection.php' og opret denne nye funktion:

require_once 'db_connection.php';

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

}

Funktionen tager en enkelt parameter som din påkrævede forespørgsel og udfører den. Opret nu en ny fil, index2.php i samme mappe, og tilføj denne linje øverst require_once 'crud.php'. Tilføj nu disse linjer i din 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;
}

Åbn derefter din browser og find til localhost/practice/index2.php, og du vil finde succes, hvis du har skrevet den rigtige forespørgsel.

Udførelse af flere forespørgsler

Ved at bruge denne metode kan du udføre mere end én indsættelse , vælg eller opdater forespørgsel. Lad os starte med at skrive en funktion til Multiindsæt eller Opdater forespørgsler. Skriv denne nye funktion i din crud.php fil

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

Funktionen tager en enkelt parameter som din påkrævede forespørgsel og udfører den. Kald nu denne funktion i din 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;
}

Åbn nu din browser og find til localhost/practice/index2.php, og du vil finde succes, hvis du har skrevet den rigtige forespørgsel.


Intet så nemt som at implementere PHP-apps i skyen

Med Cloudways kan du få dine PHP-apps op at køre på administrerede cloud-servere på blot et par minutter.

Start gratis


CRUD i PHP og MySQL med forberedte erklæringer

Forberedte sætninger bruges til at udføre samme forespørgsel flere gange med høj effektivitet. Skriv nu denne nye funktion i din crud.php fil:

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;
	}
	

}

Vi vil udvælge data ved hjælp af forberedte udsagn. Lad os se, hvordan forberedt erklæring fungerer:

  1. Først forbereder du din erklæring som INSERT INTO myguests(fornavn, efternavn, e-mail, emne) VALUES (?,?,?,?). Vi forlod ? hvor vi ønsker at indsætte værdierne.
  2. For det andet binder vi disse værdier. Den første parameter tager datatyperne for værdien  og derefter værdierne. Datatypeargumentet kan være af fire typer.
    1. i – heltal
    2. s – streng
    3. d – dobbelt
    4. b – klat
  3. Vi udfører det.

Funktionen tager fire parametre som din nødvendige værdi og udfører den. Kald nu denne funktion i din 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;
}

Åbn nu din browser og find til localhost/practice/index2.php, og du vil få succes, hvis du har skrevet den rigtige forespørgsel.

Vælg forespørgselsudførelse

Lad os nu vælge dataene fra vores MySQL-database ved hjælp af enkeltforespørgselsudførelse. Skriv en ny funktion i din crud.php skrevet nedenfor:

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;
	}
}

Funktionen kontrollerer først, at forespørgslen er udført korrekt. Hvis ikke, sender den en fejl. For det andet kontrollerer den, om antallet af rækker er større end 0 eller ej. Hvis det er tilfældet, sender den "Nul resultater fundet". Kald nu denne funktion i index2.php og skriv følgende kode:

<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>

Herefter skal du åbne din browser og finde til localhost/practice/index2.php, og du vil finde alle datalageret i din database på din index2.php-side.

Opdater forespørgsel ved hjælp af forberedt erklæring

Lad os skrive en ny funktion i din crud.php-fil for at udføre opdateringssætning:

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;
}
}

Opdateringsparameteren tager tre parametre. Det ene er kolonnenavnet, som skal opdateres, det andet er værdien, som vil blive erstattet af den tidligere værdi, og det tredje er ID'et for rækken, hvor det vil blive ændret. Udfør nu denne funktion i index2.php :

include 'crud.php';


$result = UpdateQuery("firstname","David",1);

if($result === true)
{
	echo 'success';
	
}
else
{
	echo $result;
}

Når du har gjort det, skal du åbne din browser og finde til localhost/practice/index2.php, og du vil få succes, hvis der ikke er nogen fejl.

Slet forespørgsel ved hjælp af forberedt erklæring

Lad os skrive en ny funktion i din crud.php-fil for at udføre en delete-sætning:

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;
	}
}

Slet-parameteren tager én parameter, som vil være ID'et for den række, der skal slettes fra tabellen. Udfør nu denne funktion i index2.php:

include 'crud.php';

$result = DeleteQuery(1);

if($result === true)
{
	echo 'success';
	
}
else
{
	echo $result;
}

Åbn derefter din browser og find til localhost/practice/index2.php, og du vil finde succes, hvis der ikke er nogen fejl.

Konklusion

I dette selvstudie har vi lært, hvordan man udfører CRUD i PHP og MySQL på tre forskellige måder. I den næste del af denne MySQL-serie vil jeg diskutere MySQL-datahentningsklausuler. Her er en kort introduktion og liste over hovedemner i denne MySQL-serie.

Hvis du har spørgsmål om, hvad vi lærte i denne tutorial, er du velkommen til at kommentere nedenfor! Held og lykke! 🙂


  1. Konverter BufferedInputStream til billede

  2. SQL Server SHOWPLAN_TEXT

  3. PL/SQL-samling:Indlejret tabel i Oracle-database

  4. MS SQL PÅ SLET CASCADE flere fremmednøgler, der peger på den samme tabel?