Mysql
 sql >> база данни >  >> RDS >> Mysql

Как лесно да направите прост CRUD, използвайки PHP и MySQL

В предишната част от тази серия MySQL предоставих общ преглед на манипулирането на таблици в MySQL. В тази част от поредицата от уроци ще ви науча как да създадете CRUD в PHP и MySQL, като изпълните insert , актуализация и изтриване запитвания. Тези заявки могат да бъдат изпълнени по следните начини.

Изпълнение на единична заявка

Той изпълнява една заявка в даден момент. Нека започнем с вмъкване на данни в нашата база данни, която сме създали по-рано на нашия хостинг за PHP MySQL. Създайте нов php файл в папката “практика ”, който създадохме по-рано и го наречете crud.php. CRUD е съкращението за заявки за създаване, четене, актуализиране и изтриване. Сега в новия файл добавете този ред в горната част 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;
	}

}

Функцията приема един параметър като необходимата ви заявка и го изпълнява. Сега създайте нов файл, 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 и ще намерите успех, ако сте въвели правилната заявка.

Изпълнение на множество заявки

Използвайки този метод, можете да изпълните повече от едно вмъкване , изберете или актуализация запитване. Нека започнем с написването на функция за Multi Insert или Актуализиране запитвания. Напишете тази нова функция във вашия crud.php файл

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

Функцията приема един параметър като необходимата ви заявка и го изпълнява. Сега извикайте тази функция във вашия 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 приложения на управлявани облачни сървъри само за няколко минути.

Стартирайте безплатно


CRUD в PHP и MySQL с подготвени изявления

Подготвените оператори се използват за изпълнение на една и съща заявка многократно с висока ефективност. Сега напишете тази нова функция във вашия 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(собствено име, фамилия, имейл, тема) СТОЙНОСТИ (?,?,?,?). Напуснахме ли ? където искаме да вмъкнем стойностите.
  2. Второ, ще свържем тези стойности. Първият параметър приема типовете данни на стойността  и след това стойностите. Аргументът тип данни може да бъде от четири типа.
    1. i – цяло число
    2. s – низ
    3. d – двойно
    4. b – петно
  3. Ще го изпълним.

Функцията приема четири параметъра като необходима стойност и я изпълнява. Сега извикайте тази функция във вашия 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 файл, за да изпълним изявление за актуализиране:

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

Параметърът за актуализиране приема три параметъра. Едното е името на колоната, което трябва да бъде актуализирано, второто е стойността, която ще бъде заменена с предишната стойност, а трето е идентификационният номер на реда, в който ще бъде променена. Сега изпълнете тази функция в index2.php :

include 'crud.php';


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

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

Когато направите това, отворете браузъра си и намерете localhost/practice/index2.php и ще бъдете успешни, ако няма грешка.

Изтриване на заявка с помощта на подготвена инструкция

Нека напишем нова функция във вашия crud.php файл, за да изпълним оператор за изтриване:

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

Параметърът delete взема един параметър, който ще бъде идентификаторът на реда, който трябва да бъде изтрит от таблицата. Сега изпълнете тази функция в index2.php:

include 'crud.php';

$result = DeleteQuery(1);

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

След това отворете браузъра си и намерете localhost/practice/index2.php и ще намерите успех, ако няма грешка.

Заключение

В този урок научихме как да изпълняваме CRUD в PHP и MySQL по три различни начина. В следващата част от тази серия MySQL ще обсъдя клаузите за извличане на данни на MySQL. Ето кратко въведение и списък с основните теми в тази серия MySQL.

Ако имате въпроси относно това, което научихме в този урок, не се колебайте да коментирате по-долу! Късмет! 🙂


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изпълним две mysql заявки като една в PHP/MYSQL?

  2. Колона с по-висока мощност първа в индекс, когато включва диапазон?

  3. Какво представлява MySQL еквивалентът на STUFF() в SQL Server?

  4. Как да получите всеки N-ти ред в MySQL

  5. Как да нулирате Root парола в MySQL 8.0