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

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

ВНИМАНИЕ.
Содержимое данной статьи морально устарело но сохранено для академических целей.


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

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

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

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

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

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

$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)

$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.

$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

$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

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

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

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

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

mysql_read($query)

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

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

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

table_columns($table_name)

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

table_create($table_name,$types)

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

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

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

mysql_insert($table_name,$values)

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

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

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

mysql_str($string)

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Copyright © Programmer Weekdays | Powered by WordPress