IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   MySQL (http://www.imho.ws/showthread.php?t=18533)

John37x 23.12.2002 00:43

MySQL
 
Начал изучать MySQL!Я установил mysql-max-3.23.54-win вместе с mysqlgui-win32-static-1.7.5-2.Объясните как создать елементарную БД и работать с ней по локалке.

Lord Skill 23.12.2002 01:39

John37x
Создание базы
PHP код:

<?
$host
="localhost";
$user="root";
$pass="pass";
$link=mysql_connect($host$user$pass);
$result mysql_query("CREATE DATABASE test
echo $result;
?>

Создание таблицы в базе
PHP код:

<?
$host
="localhost";
$user"root";
$pass="pass
$database="
test";
mysql_connect ($host , $user , $pass);
mysql_select_db($database);
$sql = 'CREATE TABLE `test` ( `name` TEXT, `height`VARCHAR(25), `rost` VARCHAR(25), `volosq` TEXT );';
mysql_query($sql);
?>

Достаем данные из Таблицы
PHP код:

<?php
$db_name
="test";
$table="test";
$host="localhost";    //хост
$user="root";
$pass="pass";
//законнектимся - получаем link-идентификатор или вывод номера и текста ошибки
//с последующим прерыванием работы скрипта (die())
$link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
//выбираем базу данных BOOKS, созданную нами ранее
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
//выберем данные
$result=mysql_query("SELECT name FROM ".$table$link) or die(mysql_errno($link).mysql_error($link));
//сформируем заголовок таблицы результатов выборки
$th=explode("#","Name");
echo 
"<tr><th>",implode("</th><th>",$th),"</th></tr>";
//выведем результаты в HTML-документ
while($data=mysql_fetch_row($result)) {
    echo 
"<tr><td>"implode("</td><td>",$data), "</td></tr>";
}
//освободить выделенную под результат выборки память
mysql_free_result($result);
mysql_close($link);
?>


Aeon 23.12.2002 18:55

против того что сказал Lord Skill не возражаю, но должен дополнить... базовые операции (создание баз и таблиц) проще делать вручную чем через php... итак.

Код:

DROP TABLE IF EXISTS test;
// если менять базу ( а обычно во время дизайна базы менять приходится
// несколько раз, то это выкинет уже существующую таблицу... правда надо
// позаботится о том чтобы в базе ещё не было нужных данных на этот
// момент... если данные есть, надо работать через запрос UPDATE TABLE ).
CREATE TABLE test (
  id int(4) unsigned NOT NULL auto_increment,
  name varchar(50) default NULL,
  height int(4) unsigned default NULL,
  weight int(4) unsigned default NULL,
  hair set('светлый','тёмный','рыжий') default NULL,
  PRIMARY KEY (id)
);

тут всё зависит от объема работы... я лично обычно просчитываю весь дизайн и структуру базы сначала в голове и записываю sql-запрос для создания базы в текст-файле, который сохраняю как struct.sql (например).

Теперь весь вопрос в том как этот файл скормить в mysql... и делается это до безобразия просто.

во первых, ложим файл на твой сервер ( если же всё локально то ничего не надо двигать. :smile:).

во вторых идём в шелл (dos-окно на виндах, или телнет / ssh (предпочтительно) на сервер).

теперь вводим: mysql test < struct.sql (где test = имя базы).

всё. Ну, если на базу стоит пароль доступа то конечно нужно его проставить в запросе, и тогда это выглядит примерно так: mysql -u username -pPassword test < struct.sql, но в целом это всё.
кстати, обратите внимание на отсутвие пробела между -p и паролем - это не очепятка, так и должно быть.

Альтернативный вариант:
Если же нужно просто быстренько создать таблицу или что-то быстро пофиксить, то можно с файлами голову не морочить а просто ввести запрос прямо в шелле.

для этого: входим в mysql через шелл вышеуказанным способом (не указывая базы и sql-файла, правда). Получаем доступ. Пишем use test (где test, опять же, имя базы).

вводим любой sql-запрос, и никаких проблем :)

Lord Skill 23.12.2002 21:09

Aeon
А если ему нужно целую программу писать и потом ее распростронять? тогда же нужно чтоб install.php был!!! ;)

Aeon 23.12.2002 21:31

Lord Skill

А тогда просто в install.php он делает fopen('struct.sql'); и зачитывает содержание файла в sql-запрос... и никаких проблем. Это один (из наверняка как минимум полудесятка) способов это сделать :)

хотя судя по его вопросу по моему он ещё не на том уровне где возникают проблемы распространения :)

Lord Skill 23.12.2002 22:05

Aeon
я и не подумал :D))

John37x 23.12.2002 23:05

Это всё замечательно!Но по моему со всем этим нужно работать под UNIX А что делать если у меня Винда XP? Куда всё ето писать? Я так понимаю что где то в рамках клиентской программы?

Aeon 23.12.2002 23:12

я уже сказал...
Цитата:

Как писал Aeon
во вторых идём в шелл (dos-окно на виндах, или телнет / ssh (предпочтительно) на сервер).

[Hell`s]-JD_Johnatan 30.12.2002 20:43

A ne leg4e li ispolzovat MySQLAdmin??? :)))))))))

Lord Skill 30.12.2002 21:04

[Hell`s]-JD_Johnatan
а если это не localhost?

Aeon 30.12.2002 22:24

[Hell`s]-JD_Johnatan
ты знаешь... зависит от привычек человека наверное, но мне таки не легче. Мне гораздо проще выстроить базу в уме, записать в текст-файл и просто его запихнуть в базу через shell чем выстраивать его в каком-то интерфейсе.

Stasik 31.12.2002 01:29

точно.. я вот через mysql текстом запихиваю

Lord Skill 31.12.2002 05:21

я тоже запросом!!

[Hell`s]-JD_Johnatan 31.12.2002 07:51

Vidno Vy ne polzovalis MySQLAdmin`om... Tam mozhto sdelat tot zhe samiy zapros...
Eto delo vkusa... Kto-to pishet na PHP v FARe, a kto-to v DreamWeaver`e, a kto-to v M$ WORD`e... :) No esli u nih polu4itsya odinakovo - DA ZDRAVSTVUET SVOBODA VYBORA... ;)
Tak zhe i tut... Mne bystree i udobnee eto sdelat 4erez MySQLAdmin... Pri etom ya to zhe samoe mogu i 4erez telnet sdelat... No vse taki my polzuemsya Windows`om a ne DOS`om.. Tak ved? :) GUI tozhe nado ispolzovat...
==========
Lord Skill
A esli ne localhost - chitai nastroiki MySQLAdmin... Tam vse legko nastraivaetsya... I 4to mne bolshe vsego nravitsya, on napisan na PHP... Menyai sebe nazdorov`e.. ;)

P.S. IMHO MySQLAdmin dlya Novi4ka - v samyi raz... Tam vsegda mozhno posmotret kak i 4to delat vru4nuyu...


Часовой пояс GMT +4, время: 13:48.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.