втор статьи 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)'));
Как видно таблица создана. Теперь будем ее забивать контентом. Поле 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’ом и опубликована тут по его просьбе.
Добавить комментарий