Учебники

16) Mysql php и методы доступа

PHP имеет богатую коллекцию встроенных функций для управления базами данных MySQL.

В этом уроке вы узнаете

PHP mysqli_connect function

Функция PHP mysql connect используется для подключения к серверу базы данных MySQL.

Он имеет следующий синтаксис.

<?php;
$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);
?>

ВОТ,

  • «$ Db_handle» — переменная ресурса соединения с базой данных.
  • «Mysqli_connect (…)» — это функция для подключения к базе данных php
  • «$ Server_name» — это имя или IP-адрес сервера, на котором размещен сервер MySQL.
  • «$ User_name» — допустимое имя пользователя на сервере MySQL.
  • «$ Пароль» — это действительный пароль, связанный с именем пользователя на сервере MySQL.

PHP mysqli_select_db функция

Функция mysqli_select_db используется для выбора базы данных.

Он имеет следующий синтаксис.

<?php
mysqli_select_db($db_handle,$database_name);
?>

  ВОТ,

  • «Mysqli_select_db (…)» — это функция выбора базы данных, которая возвращает либо true, либо false
  • «$ Database_name» — это имя базы данных
  • «$ Link_identifier» является необязательным, он используется для передачи ссылки на соединение с сервером

PHP mysqli_query функция

Функция mysqli_query используется для выполнения запросов SQL .

Функция может быть использована для выполнения следующих типов запросов;

  • Вставить
  • Выбрать
  • Обновить
  • удалять

Он имеет следующий синтаксис.

<?php
mysqli_query($db_handle,$query) ;
?>

  ВОТ,

  • «Mysqli_query (…)» — это функция, которая выполняет запросы SQL.
  • «$ Query» — это SQL-запрос, который нужно выполнить
  • «$ Link_identifier» является необязательным, его можно использовать для передачи ссылки на соединение с сервером.

PHP mysqli_num_rows функция

Функция mysqli_num_rows используется для получения количества строк, возвращаемых из запроса выбора.

Он имеет следующий синтаксис.

<?php
mysqli_num_rows($result);
?>

  ВОТ,

  • «Mysqli_num_rows (…)» — это функция подсчета строк
  • «$ Result» — это набор результатов mysqli_query

PHP mysqli_fetch_array функция

Функция mysqli_fetch_array используется для получения массивов строк из набора результатов запроса.

Он имеет следующий синтаксис.

<?php
mysqli_fetch_array($result);
?>

  ВОТ,

  • «Mysqli_fetch_array (…)» — это функция для извлечения массивов строк
  • «$ Result» — это результат, возвращаемый функцией mysqli_query.

 

PHP mysqli_close функция

Функция mysqli_close используется для закрытия открытого соединения с базой данных.

Он имеет следующий синтаксис.

<?php
mysqli_close($db_handle);
?>

  ВОТ,

  • «Mysqli_close (…)» — это функция PHP
  • «$ Link_identifier» является необязательным, он используется для передачи ресурса соединения с сервером

Давайте посмотрим на практические примеры, которые используют эти функции.

Создание базы данных MySQL Это руководство предполагает знание MySQL и SQL, если эти термины вам незнакомы, обратитесь к нашим учебникам по MySQL и SQL.

Мы создадим простую базу данных с именем my_personal_contacts только с одной таблицей.

Ниже приведены шаги для создания базы данных и таблицы.

  • Подключитесь к MySQL, используя ваш любимый инструмент доступа, такой как MySQL workbench, phpMyAdmin и т. Д.
  • Создайте базу данных с именем my_person_contacts
  • Выполните скрипт, показанный ниже, чтобы создать таблицу и вставить несколько фиктивных данных.
<?php
CREATE TABLE IF NOT EXISTS `my_contacts` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `full_names` varchar(255) NOT NULL,

  `gender` varchar(6) NOT NULL,

  `contact_no` varchar(75) NOT NULL,

  `email` varchar(255) NOT NULL,

  `city` varchar(255) NOT NULL,

  `country` varchar(255) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES

(1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'),

(2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'),

(3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'),

(4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy');
?>

  Теперь у нас есть настроенная база данных, которой мы будем манипулировать из PHP.

Чтение записей из базы данных Теперь мы создадим программу, которая печатает записи из базы данных.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error());
    
	//if connection failed output error message 
    if (!mysqli_select_db($dbh,'my_personal_contacts'))     
    
	die("Unable to select database: " . mysqli_error()); 
    //if selection fails output error message 
    
	$sql_stmt = "SELECT * FROM my_contacts"; 
    //SQL select query 
    
     $result = mysqli_query($dbh,$sql_stmt);
     //execute SQL statement 
     
	if (!$result)     
		die("Database access failed: " . mysqli_error()); 
    	//output error message if query execution failed 
        
		$rows = mysqli_num_rows($result); 
   		// get number of rows returned 
    
	if ($rows) {     
    
	while ($row = mysqli_fetch_array($result)) {         
		echo 'ID: ' . $row['id'] . '<br>';         
		echo 'Full Names: ' . $row['full_names'] . '<br>';        
		echo 'Gender: ' . $row['gender'] . '<br>';         
		echo 'Contact No: ' . $row['contact_no'] . '<br>';         
		echo 'Email: ' . $row['email'] . '<br>';         
		echo 'City: ' . $row['city'] . '<br>';         
		echo 'Country: ' . $row['country'] . '<br><br>';     
	} 
} 
mysqli_close($dbh); //close the database connection 
?>

  Выполнение вышеуказанного кода возвращает результаты, показанные на диаграмме, показанной ниже

PHP: функции MySQL

Вставка новых записей

Давайте теперь посмотрим на пример, который добавляет новую запись в нашу таблицу. код ниже показывает реализацию.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; 
	$sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; 
    
	$result = mysqli_query($dbh,$sql_stmt); //execute SQL statement 
    
	if (!$result)     
		die("Adding record failed: " . mysqli_error()); 
		//output error message if query execution failed echo "Poseidon has been successfully added to your contacts list";
        
 mysqli_close($dbh); //close the database connection 
?>

  Выполнив вышеприведенные выводы кода «Посейдон был успешно добавлен в ваш список контактов», вернитесь к примеру выбора запроса и снова найдите ваши контакты.

Посмотрите, был ли Посейдон добавлен в ваш список.

Обновление записей Давайте теперь рассмотрим пример, который обновляет запись в базе данных.

Предположим, что Посейдон изменил свой контактный номер и адрес электронной почты.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server 
    
	if (!$dbh)    
	die("Unable to connect to MySQL: " . mysqli_error()); 
    //if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc ';
	//SQL select query $sql_stmt .= " WHERE `id` = 5"; 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement if (!$result)     
    
	die("Deleting record failed: " . mysqli_error()); 
	//output error message if query execution failed 
    
	echo "ID number 5 has been successfully updated"; 
mysqli_close($dbh); //close the database connection 
?>

Удаление записей

Давайте теперь посмотрим на пример, который удаляет записи из базы данных. Давайте предположим, что у Венеры есть запретительный приказ против нас, и мы должны удалить ее контактную информацию из нашей базы данных.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server
    
	if (!$dbh)     
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysqli_error()); 
	//if selection failes output error message $id = 4; 
	//Venus's ID in the database 
    
	$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; 
	//SQL Delete query 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement 
    
	if (!$result)     
	die("Deleting record failed: " . mysqli_error());
	//output error message if query execution failed 
    
	echo "ID number $id has been successfully deleted"; 
mysqli_close($dbh); //close the database connection 
?>

 

PHP Data Access Object PDO

PDO — это класс, который позволяет нам манипулировать различными механизмами баз данных, такими как MySQL, PostGres, MS SQL Server и т. Д.

Код ниже показывает метод доступа к базе данных с использованием объекта PDO.

Примечание: приведенный ниже код предполагает знание языка SQL, массивов, обработки исключений и цикла foreach.

<?php 
	try {    
	$pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody');     
    
	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);     
	$pdo->exec('SET NAMES "utf8"');     
    
	$sql_stmt = "SELECT * FROM `my_contacts`";     
	$result = $pdo->query($sql_stmt);     
	$result->setFetchMode(PDO::FETCH_ASSOC);     
	$data = array();     
	foreach ($result as $row) {         
	$data[] = $row;     
  }     
print_r($data); 
} 
catch (PDOException $e) {     
	echo $e->getMessage(); 
} 
?>

  ВОТ,

  • «Try {… catch…}» — блок обработки исключений
  • «$ Pdo = new PDO (« mysql… »создает экземпляр объекта PDO и передает драйверы базы данных, имена серверов и баз данных, идентификатор пользователя и пароль).
  • «$ Pdo-> setAtt…» устанавливает атрибуты режима ошибки PDO и режима исключения
  • «$ Pdo-> exec (‘SET NA…” устанавливает формат кодировки

ODBC ODBC — это сокращение от Open Database Connectivity. Он имеет следующий основной синтаксис.

<?php $conn = odbc_connect($dsn, $user_name, $password); ?>

  ВОТ,

  • «Odbc_connect» — встроенная функция PHP
  • «$ Dsn» — это имя источника данных ODBC.
  • «$ User_name» является необязательным, оно используется для имени пользователя ODBC
  • «$ Пароль» является необязательным, он используется для пароля ODBC

Используемый пример предполагает вас;

  • Используете ОС Windows
  • Вы создали ссылку ODBC на базу данных Microsoft Access с северным ветром с именем northwind

Ниже приведен код реализации доступа к данным ODBC

<?php 
	$dbh = odbc_connect('northwind', '', ''); 
	if (!$dbh) {     
	exit("Connection Failed: " . $dbh); 
} 
	$sql_stmt = "SELECT * FROM customers"; 
	$result = odbc_exec($dbh, $sql_stmt); 
	if (!$result) {     
	exit("Error access records"); 
} 
	while (odbc_fetch_row($result)) {     
	$company_name = odbc_result($result, "CompanyName");    
	$contact_name = odbc_result($result, "ContactName");     
	echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>";
} 
odbc_close($dbh); 
?>

  Резюме

  • MySQL — это управление реляционными базами данных с открытым исходным кодом, доступное на большинстве серверов веб-хостинга.
  • PHP имеет богатую коллекцию встроенных функций, которые упрощают работу с MySQL
  • PDO является аббревиатурой от PHP Data Object; он используется для подключения к различным ядрам базы данных, используя один и тот же объект
  • PHP использует функцию odbc_connect для управления базами данных через ODBC