func( 'dropdb', $dbname, 'admin' );"删除数据库 db_test_2? #!/usr/bin/perl use warnings;-6ren">
gpt4 book ai didi

mysql - DBD::mysql - 删除数据库时出现问题

转载 作者:行者123 更新时间:2023-11-29 02:08:18 27 4
gpt4 key购买 nike

为什么行 "$rc = $dbh->func( 'dropdb', $dbname, 'admin' );"删除数据库 db_test_2?

#!/usr/bin/perl
use warnings;
use strict;
use 5.010;
use DBI;

my $host = 'localhost';
my $user = 'user';
my $password = 'password';
my( $rc, $dbname, @databases );



my $drh = DBI->install_driver( 'mysql' );
$dbname = 'db_test_1';

# use a driver handle (drh)

$rc = $drh->func( 'createdb', $dbname, $host, $user, $password, 'admin' );
say for DBI->data_sources( $driver, { host => $host, user => $user, password => $password });
# DBI:mysql:information_schema
# DBI:mysql:db_test_1
# DBI:mysql:mysql


$rc = $drh->func( 'dropdb', $dbname, $host, $user, $password, 'admin' );
say for DBI->data_sources( $driver, { host => $host, user => $user, password => $password });
# DBI:mysql:information_schema
# DBI:mysql:mysql



my $dbh = DBI->connect( "DBI:mysql:", $user, $password, { RaiseError=>1, AutoCommit=>1 } );
$dbname = 'db_test_2';

# reuse the existing connection of a database handle (dbh)

$rc = $dbh->func( 'createdb', $dbname, 'admin' );
say for DBI->data_sources( $driver, { host => $host, user => $user, password => $password });
# DBI:mysql:information_schema
# DBI:mysql:db_test_2
# DBI:mysql:mysql

$rc = $dbh->func( 'dropdb', $dbname, 'admin' );
say for DBI->data_sources( $driver, { host => $host, user => $user, password => $password });
# DBI:mysql:information_schema
# DBI:mysql:db_test_2
# DBI:mysql:mysql

最佳答案

有趣的是,在 DBI func() 中它的定义不同,但是 DBD::MySQL 有一个说服方法,它实际上是一个 _admin_internal 方法,它是在 Mysql.xs 中定义的,看起来对 do_error() 有相当多的调用,这让我相信您应该检查错误。尝试使用 RaiseError => 1 连接,看看它说了什么。

为此,连接

  $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
$user, $password, {RaiseError => 1});

然后使用 $dbh->func('dropdb' ...),看看会发生什么。

关于mysql - DBD::mysql - 删除数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2088570/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com