![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
klem4 |
![]()
Сообщение
#1
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Всем привет.
Вот такой код отрабатывает нормально: Код use Mysql; // ... $dbh = Mysql -> connect ( $host, $database, $user, $password ) || die "\nCan't connect to MYSQL\nReason: $DBI::errstr\n"; // ... $query = $dbh -> Query ( "$script" ) || die "\nCan't excute statement '$script'\nReason: $DBD::errstr\n"; А вот такой, выдает ошибку (на execute) "No database selected" Код use DBI; // <-------- //... $dbh = DBI -> connect ( "DBI:mysql:database = $database; $host = $host", $user, $password ) || die "\nCan't connect to MYSQL\nReason: $DBI::errstr\n"; //... $query = $dbh -> prepare ( "$script" ) || die "\nCan't prepare statement '$script'\nReason: DBI::errstr\n"; print "\n -- Prepare is ok.\n"; $query -> execute || die "\nCan't execute statement '$script'\nReason: $DBI::errstr\n"; print "\n Executing is ok.\n"; Почему ? Я понимаю что вроде как не выбрана база, но при use Mysql, можно использовать SelectDB, но работает и без этого, а при use DBI что нужно сделать чтобы выбрать базу ? Я думал что в строке connect'a это прописывается, видимо нет. Добавлено через 16 мин. Проблема решена. Убрал пробелы из этой строчки: Код "DBI:mysql:database=$database;host=$host" Сообщение отредактировано: klem4 - 17.06.2008 18:30 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Возникла другая проблема, есть скрипт файл, содержащий несколько SQL-запросов, например вот такой:
Цитата(create.sql) CREATE TABLE PRODUCTS ( PRODUCT_ID int NOT NULL, PRODUCT_NAME varchar(40) NOT NULL, PRIMARY KEY (PRODUCT_ID) ); CREATE UNIQUE INDEX idx_product_name ON PRODUCTS ( PRODUCT_NAME ); Я считываю его в переменную Код $/ = undef; $script = <script_file>; И хочу выполнить: Код $query = $dbh -> prepare ( "$script" ) || die "\nCan't prepare statement '$script'\nReason: $DBI::errstr\n"; print "\n -- Prepare is ok.\n"; $query -> execute || die "\nCan't execute statement \nReason: $DBI::errstr\n"; вываливается с криками об ошибке в синтаксисе SQL-запроса, начиная с 'CREATE UNIQUE INDEX ...' В файла 2 запроса, по одиночке выполняются отлично, но вместе подрят никак ... чувствую дело в диалексте или еще в чем, пробовал убирать ';' не помогло, ничего в голову не приходит пока. Сообщение отредактировано: klem4 - 17.06.2008 18:59 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 9.08.2025 20:05 |