(PHP 4, PHP 5)
mysql_query — Изпраща заявка към MySQL
mysql_query() изпраща единична заявка (множество заявки не се поддържат) към текущо активната база от данни на сървъра, която е асоциирана с указания link_identifier .
SQL заявката
Низът на заявката не трябва да завършва с точка и запетая.
Връзката към MySQL. Ако не е указана, се използва последната създадена връзка от mysql_connect(). Ако не намери такава връзка, ще направи опит да установи връзка, все едно е изпълнена mysql_connect() без параметри. Ако случайно не е намерена или създадена никаква връзка, ще се генерира предупреждение от ниво E_WARNING.
За SELECT, SHOW, DESCRIBE, EXPLAIN и други изрази връщащи резултатно множество mysql_query() връща променлива от тип resource при успешно изпълнение и FALSE при грешка.
При други типове SQL израз, INSERT, UPDATE, DELETE, DROP, и т.н, mysql_query() връща TRUE при успешно изпълнение и FALSE при грешка.
Върнатият резултатен ресурс ще трябва да бъде предаден към mysql_fetch_array() или друга функция за работа с резултатни таблици, за да може да се осъществи достъп до върнатите данни.
Използвайте функция mysql_num_rows() за да разберете колко реда са върнати от SELECT заявката и функция mysql_affected_rows() за да разберете колко реда за засегнати от DELETE, INSERT, REPLACE, или UPDATE израза.
Също така, mysql_query() няма да изпълни заявката и ще върне FALSE ако потребителя няма права за достъп да таблицата/таблиците използвани в заявката.
Example #1 Невалидна заявка
Заявката по-долу има невалиден синтаксис, така ще mysql_query() няма да изпълни заявката успешно и ще върне FALSE.
<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Невалидна заявка: ' . mysql_error());
}
?>
Example #2 Валидна заявка
Заявката по-долу е валидна, така че mysql_query() връща resource.
<?php
// Това например може да се изведе от потребителя
$firstname = 'fred';
$lastname = 'fox';
// Формулиране на заявката
// Това е най-добрият начин да се изпълни SQL заявка
// За повече примери вижте mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
mysql_real_escape_string($firstname),
mysql_real_escape_string($lastname));
// Изпълняване на заявката
$result = mysql_query($query);
// Проверяване на резултата
// Тук се извежда реалната заявка изпратена към MySQL и грешката. Удобно за намиране и отстраняване на грешки.
if (!$result) {
$message = 'Невалидна заявка: ' . mysql_error() . "\n";
$message .= 'Цялата заявка: ' . $query;
die($message);
}
// Използване на резултата
// Чрез извеждане на $result няма да получим информацията от ресурса
// Трябва да се използва някоя от функциите за резултати
// Вж. също mysql_result(), mysql_fetch_array(), mysql_fetch_row(), и т.н.
while ($row = mysql_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}
// Освобождава ресурсите свързани с резултатното множество
// Извършва се автоматично в края на изпълнението на скрипта
mysql_free_result($result);
?>