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>

Надо бы ради эксперимента попробовать то же самое проделать на goDB + MySQLi. Думаю, кода будет в 2 раза меньше, а быстродействие и безопасность - выше =)
Жилинский
25 Авг 08 at 11:02