gpt4 book ai didi

mysql - 如何在 Perl6 中使用 DBIish 连接到本地 MySQL Server 8.0

转载 作者:可可西里 更新时间:2023-11-01 06:37:41 25 4
gpt4 key购买 nike

我正在处理一个 Perl6 项目,但无法连接到 MySQL。即使使用 DBIish(或 perl6.org 教程)示例代码,连接也会失败。任何建议或建议表示赞赏!用户凭据也已确认准确无误。

我在带有 MySQL Server 8.0 的 Windows 10 和带有 Rakudo Star 的标准 Perl6 上运行它。我曾尝试以多种方式修改连接字符串,例如 :$password :password<> :password() 等,但无法建立连接。还应注意,我安装了 ODBC、C、C++ 和 .Net 连接器。

#!/usr/bin/perl6
use v6.c;
use lib 'lib';
use DBIish;
use Register::User;

# Windows support
%*ENV<DBIISH_MYSQL_LIB> = "C:/Program Files/MySQL/MySQL Server 8.0/liblibmysql.dll"
if $*DISTRO.is-win;

my $dbh = DBIish.connect('mysql', :host<localhost>, :port(3306), :database<dbNameHere>, :user<usernameHere>, :password<pwdIsHere>) or die "couldn't connect to database";
my $sth = $dbh.prepare(q:to/STATEMENT/);
SELECT *
FROM users
STATEMENT

$sth.execute();

my @rows = $sth.allrows();

for @rows { .print }
say @rows.elems;

$sth.finish;
$dbh.dispose;

这应该连接到数据库。然后应用程序运行查询,然后打印出每个结果行。实际发生的是应用程序每次都触发“死亡”消息。

最佳答案

这更像是一种解决方法,但无法使用数据库会造成严重后果。因此,即使在尝试使用 NativeLibs 时,我也无法通过 DBIish 建立连接。相反,我选择使用 DB::MySQL这被证明是非常有帮助的。只需几行代码,此模块即可满足您的数据库需求:

use DB::MySQL;

my $mysql = DB::MySQL.new(:database<databaseName>, :user<userName>, :password<passwordHere>);
my @users = $mysql.query('select * from users').arrays;

for @users { say "user #$_[0]: $_[1] $_[2]"; }

#Results would be:
#user #1: FirstName LastName
#user #2: FirstName LastName
#etc...

这将为每个用户打印一行,格式如上所示。它不像 DBIish 那样为人熟悉,但该模块可以根据需要完成工作。您可以用它做很多事情,所以我强烈建议您阅读文档。

关于mysql - 如何在 Perl6 中使用 DBIish 连接到本地 MySQL Server 8.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54247976/

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