всё, о чем я говорил вслух, но боялся написать…


PHP и MySQL, подключаемся…

Один комментарий

Предлагаю подключиться к MySQL через PHP ;-) ?

Введение
PHP поддерживает большинство СУБД, такие как mysql, sqlite, oracle полный список по адресу: http://php.net/manual/ru/refs.database.php

Oracle Database или Oracle DBMS — объектно-реляционная система управления базами данных (СУБД).
SQLite — встраиваемый движок баз данных. В 2005 году проект был награждён наградой Google-O’Reilly Open Source Awards.
MySQL (официально произносится /mɑɪ ɛs kjuː ɛl/, но разрешается, например, и /maɪ ˈsiːkwəl/, сленг. «мускул»)[1] — свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения.

Сказать, что какая-то из этих СУБД хуже, а какая-то лучше – глупо. Каждая из этих СУБД уникальна и имеет ряд своих преимуществ и минусов. Это был краткий обзор некоторых СУБД.
Все же перейдем к MySQL, выбор на этой базе был не случайным, а благодаря тому, что для PHP это самая оптимальная база. Её оптимальность заключается в распрастраненном использовании с PHP.

Создадим файл mysql.php

<?php
//---
// «localhost» 90% используют так, это означает, что к MySQL можно подключаться только через сервер локально. Если быть точным, подключиться через удаленный сервер не получиться.
$dblocation = "localhost";
// имя ваше базы
$dbname = "mybase";
// логин к mysql
$dbuser = "root";
// пароль к mysql
$dbpasswd = "mypass";
//---
// Открываем соединение с сервером MySQL
//
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if(!$dbcnx)
{
        echo("Не удается подключиться к базе данных MySQL");
        exit();
}
// Выбираем базу данных
if (!@mysql_select_db($dbname,$dbcnx))
{
        echo("База данных не найдена");
        exit();
}
else
{
// CP1251 — набор символов и кодировка, являющаяся стандартной 8-битной
// Устанавливаем для:
// клиента
        mysql_query ("set character_set_client='cp1251'");
// результата
        mysql_query ("set character_set_results='cp1251'");
// соединения
        mysql_query ("set collation_connection='cp1251_general_ci'");
}
?>

Вот такое не «хитрый» скрипт для соединения PHP с MySQL. Ну, что же давайте напишем пример использования.

Пример
Создаем скрипт с вышеописанным кодом, назовем его mysql.php, далее создадим базу.
В качестве примера будем рассматривать базу «клиентов». Заходим в phpmyadmin (если у вас всё еще нет, нужно скачать, так как он упрощает работу с MySQL) и создаем базу с таблицами.

CREATE TABLE `mybase`.`clients` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 32 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
) ENGINE = MYISAM

Описание таблицы
В таблице мы создали поле, id присваиваем ему primary key, и AUTO_INCREMENT. INT( 11 ) значит, что в поле разрешено использовать цифры, и не более 11 цифр на строке.

Атрибут AUTO_INCREMENT может использоваться для генерации уникального идентификатора для новых строк

Далее создаем поле name ставим ему VARCHAR( 32 ), использовать можно любые символы, но не более 32 символа. CHARACTER SET cp1251 COLLATE cp1251_general_ci – выставляем кодировку, и ставим NOT NULL, чтобы не было пустого поля.

Описание таблицы еще раз
Мы сделали таблицу, в которой 2 поля, первое поле id принимает только цифры и служит уникальным значением для каждой строки name. Поле name принимает любые символы не более 255 на строку, и выставлена кодировка CP1251 (windows).

Вроде бы разобрались? Приступаем к написанию скрипта для добавления клиентов.

Создаем файл add_client.php (в картинках)

Картинка. Перед добавлением имени.

Картинка. После.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Rollyz.Net / Add Client</title>
</head>
<body>
<form id="add_client" name="add_client" method="post" action="add_client.php">
  <input type="text" name="name" />
  <input type="submit" name="Submit" value="Add" />
</form>
</body>
</html>
<?php
// Вставляем файл mysql.php для соединения
include ("mysql.php");
// Проверка переменной
if (isset($_POST[name]))
      {
// Ставим ссылку на переменную $_POST[name]
 $name = $_POST[name];
// Проверяем кол-во символов
if (strlen($name) > 32)
{
// Больше 32, возвращаем сообщение об ошибке
$error = "Ваше имя превышает 32 символов.";
}
else
{
// Все ок. Создаем SQL запрос.
$sql = "INSERT INTO clients VALUES(0,'$name');";
}
// Проверяем SQL запрос
if (mysql_query($sql))
{
// Все ок. Выводим сообщени о успешном добавлении
echo $name.", Имя добавленно.";
    return true;
  }
// Есть ошибки. Возвращаем сообщение с ошибкой
  else {
    echo mysql_error();
    echo "<br />".$error;
    return false;
  }
  }
?>

Вот такой не сложный пример для добавления информации в таблицы. Все это было сделано, чтобы показать наглядный пример соединения PHP с MySQL. Если вам нужно только сама процедура соединения – это файл mysql.php

И так давайте закончим нашу работу. В конце мы создадим скрипт, который выведет нам из таблицы, все имена клиентов которые мы добавили.

Создаем файл review_client.php (в картинках)

Картинка. Что получиться при создании файла.

Пишем…

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Rollyz.Net / Review Client</title>
</head>
<body>
<!-- создаем таблицу -->
<table>
<thead>
<tr>
<th bgcolor="#CCCCCC">id номер</th>
<th bgcolor="#CCCCCC">имя клинтов</th>
</tr>
</thead>
<tbody>
<?php
// подключаемся к mysql
include ("mysql.php");
// создаем SQL запрос
$result = mysql_query("SELECT * FROM `clients`");
// создаем цикл вывода всех данных из mysql
while ( $db = mysql_fetch_array($result))
{
// в каждой отдельной строке выводим результат id номер, имя клиента
?>
<tr>
<td align="right" bgcolor="#EEEEEE"><?=$db[id];?></td>
<td bgcolor="#EEEEEE"><?=$db[name];?></td>
</tr>
<?php
// закрываем цикл
}
?>
</tbody>
</table>
</form>
</body>
</html>

Готово. Этот пример вы можете скачать целиком в zip архиве.

Автор admin

августа 25, 2008 в 9:16 дп

Один комментарий 'PHP и MySQL, подключаемся…'

Подписаться на комментарии RSS or TrackBack to 'PHP и MySQL, подключаемся…'.

  1. Надо бы ради эксперимента попробовать то же самое проделать на goDB + MySQLi. Думаю, кода будет в 2 раза меньше, а быстродействие и безопасность - выше =)

    Жилинский

    25 Авг 08 at 11:02

Ответить