Справочники, инструменты, документация

PHP: Базы данных (cниппеты)

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

Соединение

$db_host = 'localhost';
$db_base = 'база_данных';
$db_user = 'имя_пользователя';
$db_pass = 'пароль';

$db = mysql_connect($db_host, $db_user, $db_pass) or die ('Ошибка! Сервер не отвечает');
$select_db = mysql_select_db($db_base, $db) or die ('Ошибка! База данных не отвечает');
echo 'Соединение с БД установлено';

mysql_close($db);

Заменить кодировку

$stroka = iconv('UTF-8', 'WINDOWS-1251', $win_stroka); // в первых кавычках исходная кодировка, во вторых — целевая, потом переменная с кодируемым текстом

Выбрать из таблицы

$r = mysql_query("SELECT name, email FROM users WHERE name='$name'", $db) or die ($err);
$rn++;
$row = mysql_fetch_array($r);

echo $row['name'];

while($row = mysql_fetch_array($r))
{
 echo '<p>'.$row['name'].'</p>';
}

Посчитать количество полей

$rows = mysql_num_rows($r);

// или так

$r = mysql_query("SELECT COUNT(*) FROM users", $db) or die ($err);
$row = mysql_fetch_array($r);
echo $row[0];

Дополнительные параметры запросов

ORDER BY id // сортировать по id
LIMIT 1 // сколько вывести результатов
DESC // сортировать в обратном порядке
ORDER BY RAND() // случайный выбор - не использовать - нагрузка на сервер

Записать данные в таблицу

$i = mysql_query("INSERT INTO users (name, login) VALUES ('Дима', 'Dima')", $db);
$rn++;

if($i == true)
{
 $oke .= 'Данные записаны<br>';
}
else{
 $ups .= 'Ошибка, данные не записаны<br>';
 exit('<b id=0>Ошибка, данные не записаны</b><br>');
}

Обновить данные в таблице

$u = mysql_query("UPDATE users SET name='$name', login='$login' WHERE id='$id'", $db);
$rn++;

if($u == true)
{
 $oke .= 'Данные обновлены<br>';
}
else{
 $ups .= 'Ошибка, данные не обновлены<br>';
}

Удалить строку из таблицы

$d = mysql_query("DELETE FROM users WHERE id='$id'");
$rn++;

if($d == true)
{
 $oke .= 'Пользователь удалён<br>';
}
else{
 $ups .= 'Пользователь не удалён<br>';
}

Поиск в таблице

$r = mysql_query("SELECT * FROM tovar WHERE cat='$cat' AND MATCH(text) AGAINST('$word')", $db) or die ($err);
$rn++;

Выбрать вчерашние комментарии

$r = mysql_query("SELECT comment, DATE_SUB(CURDATE(), INTERVAL 1 DAY) FROM comments", $db) or die ($err);

Вывод ошибок

$u = mysql_query("UPDATE users SET name='$name' WHERE id='$id'", $db) or die(mysql_error());

Создать БД

$sql = 'CREATE DATABASE `new_db`';

mysql_query('CREATE TABLE `konkurs` ('
  . ' `id` INT(10) NOT NULL AUTO_INCREMENT, '
  . ' `name` VARCHAR(21) NOT NULL, '
  . ' `login` VARCHAR(21) NOT NULL, '
  . ' `email` VARCHAR(41) NOT NULL, '
  . ' PRIMARY KEY (`id`)'
  . ' )';

Удалить таблицу из БД

$sql = 'DROP TABLE `users`';

Уничтожить всю БД

$sql = 'CREATE DATABASE `new_db`';

Очистить всю таблицу

<?php
if(!empty($submit))
{
 $c = mysql_query("SELECT * TRUNCATE users", $db) or die ($err);
 if($c == true)
 {
  $oke .= 'Таблица users очищена';
 }
 else{
  $ups .= 'Ошибка, таблица users не очищена';
 }
}
?>

<form action="" method="post">
<input type="submit" name="submit" value="Очистить таблицу" />
</form>