这是Perl学习笔记的第三部分,数据库操作。
#!/usr/bin/perl use strict; use warnings; use v5.10; # for say() function use DBI; # say "[INFO ] Perl MySQL Connect Demo"; # MySQL database configuration # DB Sample # my XX private val my $dsn = "DBI:mysql:database=expdf_cloud;host=192.168.8.35"; my $username = "root"; my $password = 'admin'; # connect to MySQL database # my %attr = ( PrintError=>0, # turn off error reporting via warn() # RaiseError=>1); # turn on error reporting via die() say "[INFO ] Connected to the MySQL database.\n"; # my $dbh = DBI->connect($dsn,$username,$password, \%attr); my $dbh = DBI->connect($dsn,$username,$password) or die("[ERROR] Error connecting to the database: $DBI::errstr\n"); # SELECT say "[INFO ] STEP1. Get Setting From Setting Table."; my $FILE_FOLDER = query_sets($dbh,'FILE_FOLDER'); my $SVG_FOLDER = query_sets($dbh,'SVG_FOLDER'); my $TMP_FOLDER = query_sets($dbh,'TMP_FOLDER'); say "[INFO ] FILE_FOLDER : $FILE_FOLDER"; say "[INFO ] SVG_FOLDER : $SVG_FOLDER"; say "[INFO ] TMP_FOLDER : $TMP_FOLDER"; # INSERT say "\n[INFO ] STEP2. Insert Data to Table."; insert_info($dbh,'FILE_FOLDER1','LALALA'); my $FILE_FOLDER1 = query_sets($dbh,'FILE_FOLDER1'); say "[INFO ] FILE_FOLDER : $FILE_FOLDER1"; # UPDATE # DELETE say "\n[INFO ] STEP3. Delete Data from Table."; del_info($dbh,'FILE_FOLDER1'); say "\n[INFO ] DisConnected to the MySQL database."; $dbh->disconnect(); # 查询数据的子函数 sub query_sets{ # query from the links table my ($dbh,$target) = @_; my $result = ''; my $sql = "SELECT set_content FROM set_info WHERE set_item = ? "; my $sth = $dbh->prepare($sql); # execute the query $sth->execute($target); while(my @row = $sth->fetchrow_array()){ $result = $row[0]; } $sth->finish(); return $result; } # 插入数据的子函数 sub insert_info{ my ($dbh,$para1,$para2) = @_; my $sql = "INSERT INTO set_info(set_item,set_content) VALUES(?,?)"; my $stmt = $dbh->prepare($sql); # execute the query if($stmt->execute($para1, $para2)){ say "[INFO ] Inserted successfully"; }else{ say "[INFO ] Inserted error"; } $stmt->finish(); } # 删除数据的子函数 sub del_info{ my ($dbh,$para1) = @_; my $sql = "DELETE FROM set_info WHERE set_item=?"; my $stmt = $dbh->prepare($sql); # execute the query if($stmt->execute($para1)){ say "[INFO ] Deleted successfully"; }else{ say "[INFO ] Deleted error"; } $stmt->finish(); }