sql >> Databasteknik >  >> RDS >> Mysql

Hur man gör enkelt CRUD med PHP och MySQL enkelt

I den tidigare delen av den här MySQL-serien gav jag en översikt över tabellmanipulation i MySQL. I den här delen av handledningsserien kommer jag att lära dig hur du skapar CRUD i PHP och MySQL genom att köra insert , uppdatering och ta bort frågor. Dessa frågor kan köras på följande sätt.

Körning av en enda fråga

Den kör en enda fråga åt gången. Låt oss börja med att infoga data i vår databas som vi har skapat tidigare på vår hosting för PHP MySQL. Skapa en ny php-fil i mappen "öva ” som vi tidigare har skapat och namnger den crud.php. CRUD är förkortningen för Skapa, Läs, Uppdatera och Ta bort frågor. Nu i den nya filen lägger du till den här raden högst upp require_once ‘db_connection.php’ och skapa den här nya funktionen:

require_once 'db_connection.php';

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

}

Funktionen tar en enda parameter som din önskade fråga och kör den. Skapa nu en ny fil, index2.php i samma mapp och lägg till den här raden require_once ‘crud.php’ högst upp. Lägg nu till dessa rader 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;
}

Öppna sedan din webbläsare och leta upp till localhost/practice/index2.php och du kommer att lyckas om du har skrivit rätt fråga.

Körning av flera frågor

Med den här metoden kan du köra mer än en insättning , välj eller uppdatera fråga. Låt oss börja med att skriva en funktion för Multi Insert eller Uppdatera frågor. Skriv denna nya 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 tar en enda parameter som din önskade fråga och kör den. Anropa nu denna 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;
}

Öppna nu din webbläsare och leta upp till localhost/practice/index2.php och du kommer att lyckas om du har skrivit rätt fråga.


Inget är så enkelt som att distribuera PHP-appar på molnet

Med Cloudways kan du ha dina PHP-appar igång på hanterade molnservrar på bara några minuter.

Starta gratis


CRUD i PHP och MySQL med förberedda uttalanden

Förberedda satser används för att utföra samma fråga flera gånger med hög effektivitet. Skriv nu denna nya 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 kommer att välja data med hjälp av förberedda uttalanden. Låt oss se hur förberedda uttalanden fungerar:

  1. Först förbereder du ditt uttalande som INSERT INTO myguests(förnamn, efternamn, e-post, ämne) VÄRDEN (?,?,?,?). Vi lämnade ? där vi vill infoga värdena.
  2. För det andra kommer vi att binda dessa värden. Den första parametern tar datatyperna för värdet  och efter det värdena. Datatypargumentet kan vara av fyra typer.
    1. i – heltal
    2. s – sträng
    3. d – dubbel
    4. b – blob
  3. Vi kommer att utföra det.

Funktionen tar fyra parametrar som önskat värde och kör det. Anropa nu denna 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;
}

Öppna nu din webbläsare och leta upp till localhost/practice/index2.php och du kommer att lyckas om du har skrivit rätt fråga.

Välj sökfråga

Låt oss nu välja data från vår MySQL-databas med exekvering av en enda fråga. Skriv en ny funktion i din crud.php skriven nedan:

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 kontrollerar först att frågan exekveras framgångsrikt. Om inte skickas ett felmeddelande. För det andra kontrollerar den om antalet rader är större än 0 eller inte. Om så är fallet skickar den "Noll resultat hittades". Anropa nu denna funktion i index2.php och skriv följande kod:

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

Efter detta, öppna din webbläsare och leta upp till localhost/practice/index2.php och du kommer att hitta all datalagret i din databas på din index2.php-sida.

Uppdatera fråga med förberedda uttalanden

Låt oss skriva en ny funktion i din crud.php-fil för att köra uppdateringssatsen:

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

Uppdateringsparametern tar tre parametrar. Det ena är kolumnnamnet som behöver uppdateras, det andra är värdet som kommer att ersättas av det tidigare värdet och tredje är ID:t för raden där det kommer att ändras. Kör nu den här funktionen 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, öppna din webbläsare och leta upp till localhost/practice/index2.php och du kommer att lyckas om det inte finns något fel.

Ta bort fråga med förberett uttalande

Låt oss skriva en ny funktion i din crud.php-fil för att exekvera en delete-sats:

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

Parametern delete tar en parameter som kommer att vara ID för raden som måste tas bort från tabellen. Kör nu den här funktionen i index2.php:

include 'crud.php';

$result = DeleteQuery(1);

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

Efter det, öppna din webbläsare och leta upp till localhost/practice/index2.php och du kommer att hitta framgång om det inte finns något fel.

Slutsats

I den här handledningen har vi lärt oss hur man kör CRUD i PHP och MySQL på tre olika sätt. I nästa del av den här MySQL-serien kommer jag att diskutera MySQL-datahämtningsklausuler. Här är en kort introduktion och lista över viktiga ämnen i den här MySQL-serien.

Om du har några frågor om vad vi lärde oss i den här handledningen, kommentera gärna nedan! Lycka till! 🙂


  1. Oracle PL/SQL - Öka användardefinierat undantag med anpassad SQLERRM

  2. Hibernate native query - kolumn char(3).

  3. Sök i Microsoft SQL Server Database efter lagrad data

  4. Betydelsen av Oracles dump(systimestamp) bytes