PHP MySQLi Функции: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP има богата колекция от вградени функции за манипулиране MySQL бази данни.
Функция PHP mysqli_connect
Функцията за свързване на PHP mysql се използва за свързване към a 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 сървър.
- “$password” е валидна парола, свързана с потребителско име в 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 работна маса, 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
$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
?>
Изпълнението на горния код извежда „Poseidon беше успешно добавен към вашия списък с контакти“ върнете се към примера за заявка за избор и извлечете отново вашите контакти.
Вижте дали Poseidon е добавен към вашия списък.
Актуализиране на записи Нека сега да разгледаме пример, който актуализира запис в базата данни.
Да предположим, че Poseidon е променил своя номер за контакт и имейл адрес.
<?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 обект за достъп до данни 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 потребителско име
- “$password” не е задължителен, използва се за ODBC парола
Използваният пример предполага вас;
- Използват Windows OS
- Създадохте ODBC връзка към северния вятър Microsoft Достъп до база данни с име 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);
?>
Oбобщение
- MySQL е управление на релационни бази данни с отворен код, достъпно на повечето уеб хостинг сървъри
- PHP има богата колекция от вградени функции, които опростяват работата MySQL
- PDO е акронимът на PHP Data Object; използва се за свързване към различни машини за бази данни, използвайки един и същ обект
- PHP използва функцията odbc_connect за манипулиране на бази данни чрез ODBC

