如何从 Perl 连接到 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
- 点赞
- 收藏
- 关注作者
评论(0)