Простой MYSQL интерфейс на PHP

Январь 6th, 2011 Рубрики: MySQL, PHP coubertin.cz www.colvillewoodworking.com

Автор статьи Alex_pac.
Статья о простейшем MySQL интерфейсе на PHP опубликована по просьбе автора.

Итак сейчас я продемонстрирую как это работает.

создадим базу данных ‘mydatabase’ в кодировке cp1251_general_ci

Для этого можно зайти в php_my_admin и проделать это.

В качестве пользователя возьмем root на localhost

Предварительные «мучения» пройдены, приступаем к сути.

создаем файл comand.php

1
2
3
$conn = mysql_connect('localhost', 'root', '');
$bd = 'mydatabase';
include('my_subd_sql.php');

Сейчас мы подключились к базе и включили библиотеку упрощенного управления, ведь дальше с ней и будем работать.

Начнем с такой простой операции как создание таблицы.
Создадим таблицу users с полями:

id - INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
name - VARCHAR(32)
info - VARCHAR(32)
1
2
3
4
5
6
7
8
$conn = mysql_connect('localhost', 'root', '');
$bd = 'mydatabase';
include('my_subd_sql.php');
//создание таблицы
table_create('users',array(
  'id : INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY',
  'name : VARCHAR(32)',
  'info : VARCHAR(32)'));
mysql Как видно таблица создана. Теперь будем ее забивать контентом. Поле id является счетчиком, поэтому туда будем посылать значение 0.
1
2
3
4
5
6
7
8
9
$conn = mysql_connect('localhost', 'root', '');
$bd = 'mydatabase';
include('my_subd_sql.php');
//заполнение таблицы
mysql_insert('users',array(
  '0', 'Alex', 'Magistr',
  '0', 'Anton', 'Necromant',
  '0', 'Anya', 'Znatok',
  '0', 'Vanya', 'Novi4ok'));
+----+-------+-----------+
| id | name  | info      |
+----+-------+-----------+
|  1 | Alex  | Magistr   |
|  2 | Anton | Necromant |
|  3 | Anya  | Znatok    |
|  4 | Vanya | Novi4ok   |
+----+-------+-----------+

И наконец сделаем запрос на выборку

SELECT * FROM users

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$conn = mysql_connect('localhost', 'root', '');
$bd = 'mydatabase';
include('my_subd_sql.php');
// простой запрос

$column = table_columns('users'); //получение название полей
$result = mysql_read('SELECT * FROM users'); //основной запрос.

echo '<table border=1>';
echo '<tr bgcolor=#eeffee>';
foreach ($column as $c) {
  echo '<td>' . $c;
}
foreach ($result as $r) {
  echo '<tr>';
  foreach ($r as $rr) {
    echo '<td>' . $rr;
  }
}
echo '</table>';

Как видно: не нужно организовывать непонятные циклы для получения так называемого $mysql_result и дальнейшего его парсинга.
Функция mysql_read возвращает массив из запроса, что делает создание приложений с использованием баз данных более простым.

Еще один пример. Изменим имя пользователя Alex на Evgenii

1
2
3
4
5
6
$conn = mysql_connect('localhost', 'root', '');
$bd = 'mydatabase';
include('my_subd_sql.php');
//обычный запрос

mysql_query("UPDATE users SET name='Evgenii' WHERE name='Alex'");

Теперь немного документации..

итак основные функции

1
mysql_read($query)

возвращает двумерный массив выборки, согласно запросу SELECT. Если массив пустой, то возвращет false
То есть можно составлять такую конструкцию, для корректности выборки данных.
Важно! Массив с числовыми индексами.

1
2
3
4
5
if ($result=mysql_read('SELECT * FROM users WHERE id=2')) {
  print_r ($result);
} else {
  print 'нет строк';
}

Количество строк можно подсчитать через count($result)
Количество столбцов через count($result[0])

1
table_columns($table_name)

Возвращает одномерный массив с числовыми индексами. Массив содержит названия полей таблицы.

1
table_create($table_name,$types)

Создает таблицу в базе данных.
$table_name - название таблицы
$types - массив полей.

1
2
3
4
5
6
table_create('online',array(
  'ip : VARCHAR(15)',
  'agent : INT NOT NULL',
  'keyCookie : VARCHAR(16)',
  'id : INT UNSIGNED',
  ' : INDEX(`ip`(6),`agent`)'));

Помимо обычного синтаксиса "название поля : тип", разрешается использовать в последнем элементе указание на индексацию.
Тогда нужно отсупить пробел, потом поставить : и далее индексировать поля, согласно SQL синтаксису.
Использование кавычек запрещено (функция сама их ставит), за исключением Индексации.
Назначение данной функции состоит в написании различного рода инсталляторов для ваших приложений.

1
mysql_insert($table_name,$values)

Добавляет строчки с записями в таблицу.
Единственная особенность в том что длина массива $values должна быть кратна ширине таблицы.
А типы значения совпадать с указанным в структуре таблицы.
Все посылаемые значения проходят фильтр на кавычки, так что не беспокойтесь, кулхацкеры не пройдут.
Как ноу-хау, эта функция генерирует самый валидный запрос в базу со всеми кавычками и указанием полей, что обычный кодер делать лениться, поэтому количество вставляемых строчек ничем не ограничено.
Результат работы функции при невыполнении выше указанных условий непредсказуем.
Как пример добавим еще одно пользователя.

1
2
mysql_insert('users',array(
  '0','Igor','Adept'));

Функция безопасности ввода кавычек

1
mysql_str($string)

выполняет теже самые обязанности что и mysql_real_escape_string(), но имеет более элегантное имя.

Скачать пример.

P.S. Вы можете удалить ненужные функции из библиотеки если вы ими не пользуетесь.

P.S.S. Функции проверены многочисленными баталиями на интернет форумах и их быстродействие доведено до совершенства.

P.S.S.S. Напоминаю что статья написана Alex_pac'ом и опубликована тут по его просьбе.

Теги: ,

Есть 1 комментарий. к “Простой MYSQL интерфейс на PHP”

  1. Апрель 21st, 2011 at 20:51
    1

    Zekman удали статью. Я хочу перейти на mysqli и там не все так очевидно.

    [Ответить]

Написать комментарий