Простой MYSQL интерфейс на PHP
Автор статьи 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)')); |

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'ом и опубликована тут по его просьбе.
Zekman удали статью. Я хочу перейти на mysqli и там не все так очевидно.
[Ответить]