现在的位置: 首页 > 算法 > 正文

如何实现Perl与MySQL相互通讯的操作

2020年05月22日 算法 ⁄ 共 1937字 ⁄ 字号 评论关闭

  Perl中一个最酷的模块就是Perl数据库接口(PerlDatabaseInterface,简称DBI)。通过提供一系列在内部上能够转化成原始调用函数的功能,DBI模块为很多不同的数据库提供了一个统一的接口。由此,使用Perl就可以很容易地利用数据库和建立动态Web网页。下面学步园小编来讲解下如何实现Perl与MySQL相互通讯的操作?

  如何实现Perl与MySQL相互通讯的操作

  下载和安装

  开始,下载并安装PerlDBI模块和MySQLDBD。通过在Perl命令行中运行以下命令即可完成安装过程:

  perl>perl-MCPAN-e"installDBI"

  perl>perl-MCPAN-e"installDBD::mysql"

  注意:你可以手动下载和安装DBI和MySQLDBD。

  现在PerlDBI和MySQLDBD应该安装在你的系统中。

  然后,通过在MySQL用户端命令行输入以下命令,以建立一个用于SQL查询的表格。

  mysql>CREATETABLEusers(idINT(4)PRIMARYKEY,usernameVARCHAR(25),countryVARCHAR(2));

  QueryOK,0rowsaffected(0.11sec)

  mysql>INSERTINTOusersVALUES(1,'john','IN'),(2,'tom','US'),(3,'layla','US');

  QueryOK,3rowsaffected(0.11sec)

  Records:3Duplicates:0Warnings:0

  一旦建立表格,继续使用DBI方法建立一个脚本模板(见表A)。

  表A

  #!/bin/perl

  #loadmodule

  useDBI;

  #connect

  my$dbh=DBI->connect("DBI:mysql:database=db2;host=localhost","joe","guessme",{'RaiseError'=>1});

  #executeINSERTquery

  my$rows=$dbh->do("INSERTINTOusers(id,username,country)VALUES(4,'jay','CZ')");

  print"$rowsrow(s)affected";

  #executeSELECTquery

  my$sth=$dbh->prepare("SELECTusername,countryFROMusers");

  $sth->execute();

  #iteratethroughresultset

  #printvalues

  while(my$ref=$sth->fetchrow_hashref()){

  print"User:$ref->";

  print"Country:$ref->";

  print"----------";

  }

  #cleanup

  $dbh->disconnect();

  如何实现Perl与MySQL相互通讯的操作

  四个步骤

  当使用PerlDBI执行一个SQL查询时,请遵循四个简单的步骤:

  开始时,通过调用connect()方法初始化数据库的句柄。connect()方法接收连接参数并作为字符串,包括数据库类型("mysql"),主机名称("localhost"),以及数据库名称("db2")。数据库名称("joe")和密码("guessme")作为第二和第三个变量提供给connect()方法。

  建立SQL查询字符串,并使用do()或prepare()以及execute()方法执行查询语句。do()方法是针对于一次性使用的INSERT,UPDATE或者DELETE查询,但prepare()和execute()方法针对的是SELECT查询。使用这些方法得到的对象将有所不同,这取决于查询的类型,查询结果是否成功也是如此。成功的SELECT查询将返回一个结果对象,成功的INSERT/UPDATE/DELETE查询将返回一些相关的行。而不成功的查询将返回一个错误。

  对于SELECT查询,结果对象将被进一步处理以提取数据。使用一个循环,fetchrow_hashref()方法将返回每一记录作为Perl的信号。

  通过调用disconnect()方法结束会话。

  当你下回继续在Perl中编写MySQL数据库连接代码时,这一脚本模块将可为你节省时间。

  以上就是关于“如何实现Perl与MySQL相互通讯的操作”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.