URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1301
[ Назад ]

Исходное сообщение
"mysql"

Отправлено Shrek , 22-Янв-03 12:39 
я новичок в этом но очень нужна помощь.
нужен реальный пример по созданию таблицы на два поля.

Содержание

Сообщения в этом обсуждении
"RE: mysql"
Отправлено Plus , 22-Янв-03 13:18 
>я новичок в этом но очень нужна помощь.
>нужен реальный пример по созданию таблицы на два поля.


CREATE TABLE tablename(
fieldname1 INTEGER,
fieldname2 VARCHAR(50)
);

По умолчанию таблица будет типа MyISAM, так что это указывать не надо.


"RE: mysql"
Отправлено Plus , 22-Янв-03 13:21 
>я новичок в этом но очень нужна помощь.
>нужен реальный пример по созданию таблицы на два поля.


Разумеется прежде ты должен выбрать базу данных в которой будешь создавать. Если ты хочешь это делать через Perl DBI, то имя БД как правило указывается при коннекте:
DBI->connect("DBI:mysql:dbname",$user,$pass);
Если же через shell, то сначала выбери БД
use dbname;
А потом уже CREATE.


"RE: mysql"
Отправлено Plus , 22-Янв-03 13:21 
>я новичок в этом но очень нужна помощь.
>нужен реальный пример по созданию таблицы на два поля.


Разумеется прежде ты должен выбрать базу данных в которой будешь создавать. Если ты хочешь это делать через Perl DBI, то имя БД как правило указывается при коннекте:
DBI->connect("DBI:mysql:dbname",$user,$pass);
Если же через shell, то сначала выбери БД
use dbname;
А потом уже CREATE.


"mysql "
Отправлено Shrek , 22-Янв-03 22:15 
спасибо. разобрался. работает вот только не могу подключится к базе через перл не совсем ясно что такое dbname. перепробывал многое все равно ошыбка на этой строке.

спасибо.


"RE: mysql "
Отправлено Plus , 22-Янв-03 23:04 
>спасибо. разобрался. работает вот только не могу подключится к базе через перл
>не совсем ясно что такое dbname. перепробывал многое все равно ошыбка
>на этой строке.
>
>спасибо.


Синтаксис подключения
#!/usr/bin/perl
use DBI;
my $dbname="test";
my $user="login";
my $pass="pass";
# Соеденяемся
my $dbh=DBI->connect("DBI:mysql:$dbname",$user,$pass);
# Выходим если не получилось
die "Can't connect to database $dbname. Error:".$DBI::errstr if $DBI::errstr;
# Готовим команду выборки
my $sth=$dbh->prepare("SELECT fld1,fld2 FROM tblname");
# Выбираем данные
while(my @sd=$sth->fetchrow_array){
print "fld1: $sd[0], fld2: $sd[1]\n";
}
exit(0);

В принципе и все, есть еще два метода самой выборки через дескриптор команды:
1) $sd=$sth->fetchrow_arrayref; # К полям обращаешься как $sd->[0],$sd->[1]
2) $sd=$sth->fetchrow_hashref("NAME_lc"); # Медленная, но удобная
К полям обращаешься по имени $sd->{fld1} и $sd->{fld2}.

И выборка через дескриптор БД (тока одну строчку можно так):
my @sd=$dbh->selectrow_array("SELECT fld1,fld2 FROM tblname");
print $sd[0], $sd[1];

Будут вопросы - пиши.


"RE: mysql "
Отправлено Plus , 22-Янв-03 23:09 
>спасибо. разобрался. работает вот только не могу подключится к базе через перл
>не совсем ясно что такое dbname. перепробывал многое все равно ошыбка
>на этой строке.
>
>спасибо.
И еще - если не знаешь что творится - используй
use CGI::Carp 'fatalsToBrowser';

И выводи сообщения типа
print $DBI::errstr if $DBI::errstr;
Вместо принта соответственно можешь использовать die или warn


"ошыбка"
Отправлено Shrek , 23-Янв-03 13:36 
всё именно так я и делал проблема была в DBI, теперь я подключаюсь, но просмотреть даные не возможно, ошыбка.

зделал так:
#!/usr/bin/perl
use DBI;
$dbname="mysql";
$user="svi";
$pass="555";
$dbh=DBI->connect("DBI:mysql:$dbname",$user,$pass);
$sth = $dbh->prepare("SELECT host, user FROM user");
while (@row = $sth->fetchrow_array)
{
  print  "host: $row[0] - user: $row[1]\n";
}

выдаёт ошыбку типа:
DBD::mysql::st fetchrow_array failed: fetch() without execute() at ./ms.pl line 14.


"RE: ошыбка"
Отправлено Plus , 23-Янв-03 17:10 
>всё именно так я и делал проблема была в DBI, теперь я
>подключаюсь, но просмотреть даные не возможно, ошыбка.
>
>зделал так:
>#!/usr/bin/perl
>use DBI;
>$dbname="mysql";
>$user="svi";
>$pass="555";
>$dbh=DBI->connect("DBI:mysql:$dbname",$user,$pass);
>$sth = $dbh->prepare("SELECT host, user FROM user");
>while (@row = $sth->fetchrow_array)
>{
>  print  "host: $row[0] - user: $row[1]\n";
>}
>
>выдаёт ошыбку типа:
>DBD::mysql::st fetchrow_array failed: fetch() without execute() at ./ms.pl line 14.

Извини, стормозил, забыл совсем. После $sth->prepare
поставь $sth->execute();

$sth=$dbh->prepare("SELECT host,user FROM user");
$sth->execute();


"RE: ошыбка"
Отправлено Shrek , 23-Янв-03 17:17 
>>всё именно так я и делал проблема была в DBI, теперь я
>>подключаюсь, но просмотреть даные не возможно, ошыбка.
>>
>>зделал так:
>>#!/usr/bin/perl
>>use DBI;
>>$dbname="mysql";
>>$user="svi";
>>$pass="555";
>>$dbh=DBI->connect("DBI:mysql:$dbname",$user,$pass);
>>$sth = $dbh->prepare("SELECT host, user FROM user");
>>while (@row = $sth->fetchrow_array)
>>{
>>  print  "host: $row[0] - user: $row[1]\n";
>>}
>>
>>выдаёт ошыбку типа:
>>DBD::mysql::st fetchrow_array failed: fetch() without execute() at ./ms.pl line 14.
>
>Извини, стормозил, забыл совсем. После $sth->prepare
>поставь $sth->execute();
>
>$sth=$dbh->prepare("SELECT host,user FROM user");
>$sth->execute();

СУПЕР РАБОТАЕТ!
спасибо Plus сменя пиво!


"RE: ошыбка"
Отправлено Plus , 25-Янв-03 02:36 
Пива то? Это я люблю!!! Скажи где обитаешь - есть Аська - лезь - 703633

"RE: mysql"
Отправлено Shrek , 30-Янв-03 15:38 
Вот пожалуйста результат.
http://www.ber.te.ua/telephone/index.htm