Вот такой код отрабатывает нормально:
Код
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";
//...
$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 -