如何从 Perl 连接到 MySQL 从特定表中选择记录的示例
【摘要】 问:如何从 perl 程序连接到 MySQL 数据库?我喜欢连接到现有的 mysql 数据库并从特定表中选择记录。你能用一个简单的工作示例来解释吗?
答:您应该使用 perl DBI 模块连接到 MySQL 数据库
问:如何从 perl 程序连接到 MySQL 数据库?我喜欢连接到现有的 mysql 数据库并从特定表中选择记录。你能用一个简单的工作示例来解释吗?
答:您应该使用 perl DBI 模块连接到 MySQL 数据库,如下所述。
如果您没有安装 perl DBI 和 DBD::mysql 模块,请先cpan安装perl 模块。
# perl -MCPAN -e shell
cpan> install DBI
cpan> install DBD::mysql
在非常高的层次上,您必须执行以下三个步骤才能连接到 MySQL 数据库并获取数据。
1.连接MySQL数据库
在 DBI 模块中,您将使用连接函数,如下所示。
$dbc = DBI->connect($source, $username, $password)
DBI->connect 函数采用以下三个参数:
- $source – 格式为“DBI:mysql:[database]:[hostname]”。将 [database] 和 [hostname] 替换为您系统中的值。在下面显示的示例中,它连接到在本地主机上运行的名为“mycompany”的数据库。
- $username – 用于连接到 MySQL 数据库的用户名。
- $password – 上述用户名的密码。
您应该将 DBI->connect 的返回值存储到一个变量,稍后您将使用该变量准备 sql 语句。
2.准备SQL语句
连接后,您将通过 prepare 命令使用 prepare sql 语句。您将使用 DBI->connect 函数返回的变量调用准备命令。
以下命令将准备 select sql 命令。
$out = $sql->execute()
您应该将准备命令的返回值存储到一个变量中,您将使用该变量来执行 sql 命令。
3.执行SQL语句
准备好 sql 语句后,您只需使用 execute 命令执行该语句。您将使用prepare 函数返回的变量调用execute 命令。
$out = $sql->execute()
4. 循环记录
执行该语句后,您将使用 fetchrow_array 函数遍历记录。您将使用准备函数返回的变量调用 fetchrow_array 函数。
while (($id, $name) = $sql->fetchrow_array())
{
print "Id: $id Name: $name\n";
}
5. 运行 MySQL Perl 示例
下面的示例 perl 代码将连接 MySQL 数据库并从员工表中选择记录并打印它。
$ vi connect.pl
#!/usr/bin/perl
use DBI;
$source = "DBI:mysql:mycompany:localhost";
$username = "root";
$password = "MySecretPassword";
$dbc = DBI->connect($source, $username, $password)
or die "Unable to connect to mysql: $DBI::errstr\n";
$sql = $dbc->prepare("select id, name from employee");
$out = $sql->execute()
or die "Unable to execute sql: $sql->errstr";
while (($id, $name) = $sql->fetchrow_array())
{
print "Id: $id Name: $name\n";
}
当您执行上面的 connect.pl perl 代码时,它将显示雇员表中的记录,如下所示。
$ ./connect.pl
Id: 100 Name: Thomas
Id: 200 Name: Jason
Id: 300 Name: Sanjay
Id: 400 Name: Nisha
Id: 500 Name: Randy
Id: 501 Name: Ritu
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)