Apache 配置CGI脚本操作数据库之Perl操作
来源:互联网 发布:网络上关于兄弟的歌曲 编辑:程序博客网 时间:2024/05/24 02:35
Perl不多说,本博客默认系统中已经安装了Perl
1. Perl与数据库
Perl 5 中我们可以使用 DBI 模块来连接数据库。
DBI 英文全称:Database Independent Interface,中文称为数据库独立接口。
DBI 作为 Perl 语言中和数据库进行通讯的标准接口,它定义了一系列的方法,变量和常量,提供一个和具体数据库平台无关的数据库持久层。
盗图一张:
图表中 DBI 获取所有 API(Application Programming Interface:应用程序接口) 发送过来的 SQL 数据,然后分发到对应的驱动上执行,最后再获取数据返回。
以下设置了比较常用的变量名命名方法:
$dsn 驱动程序对象的句柄$dbh 一个数据库对象的句柄$sth 一个语句或者一个查询对象的句柄$h 通用的句柄 ($dbh, $sth, 或 $drh),依赖于上下文$rc 操作代码返回的布什值(true 或 false)$rv 操作代码返回的整数值@ary 查询返回的一行值的数组(列表)$rows 操作代码返回的行数值$fh 文件句柄undef NULL 值表示未定义\%attr 引用属性的哈希值并传到方法上
2. Web CGI服务器支持及配置
[root@lockey cgi-bin]# vim /etc/httpd/conf/httpd.conf
在你进行CGI编程前,确保您的Web服务器支持CGI及已经配置了CGI的处理程序。
Apache 支持CGI 配置:
设置好CGI目录:
#确保配置文件里面有这样一行内容ScriptAlias /cgi-bin/ /var/www/cgi-bin/
运行脚本目录配置:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all</Directory>
在 AddHandler 中添加 .pl 后缀,这样我们就可以访问 .pl 结尾的 python 脚本文件:
AddHandler cgi-script .cgi .pl .py
3. 安装Perl的数据库驱动模块(部分系统有默认安装,但是还是请确认)
[root@lockey cgi-bin]# yum install perl-DBI -y[root@lockey cgi-bin]# yum install perl-DBD-MySQL -y
4. 测试网页是否正常运行
运行脚本要在cig-bin目录下,并且有执行权限,一般都是755权限设置
[root@lockey cgi-bin]# cat perltest.cgi #!/usr/bin/perlprint "Content-type:text/html\r\n\r\n";print '<html>';print '<head>';print '<meta charset="utf-8">';print '<title>Lockey.cheng.com</title>';print '</head>';print '<body>';print '<h2>Hello World! </h2>';print '<p>Lockey de CGI script</p>';print '</body>';print "<font size=+1>环境变量:</font>\n";foreach (sort keys %ENV){ print "<b>$_</b>: $ENV{$_}<br>\n";}print '</html>';1;[root@lockey cgi-bin]#
4. 数据库连接及操作(插入数据)
[root@lockey cgi-bin]# cat perltest.cgi #!/usr/bin/perl -wprint "Content-type:text/html\r\n\r\n";print '<html>';print '<head>';print '<meta charset="utf-8">';print '<title>Lockey.cheng.com</title>';print '</head>';print '<body>';print '<h2>Hello World! </h2>';print '<p>Lockey de CGI script</p>';print '</body>'; #use strict;use DBI;my $host = "localhost"; # 主机地址my $driver = "mysql"; # 接口类型 默认为 localhostmy $database = "lockeyDB"; # 数据库# 驱动程序对象的句柄my $dsn = "DBI:$driver:database=$database:$host"; my $userid = "root"; # 数据库用户名my $password = "halo"; # 数据库密码# 连接数据库my $dbh = DBI->connect($dsn, $userid, $password ) or die "Cannot conenct db: $DBI::errstr\n";print "I have connected to the mariaDB database!\n";my $sth = $dbh->prepare("INSERT INTO User(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Lockey', 'Mohan', 23, 'M', 200000)");$sth->execute() or die $DBI::errstr;$sth->finish();$dbh->commit or die $DBI::errstr; $sth->finish();$dbh->disconnect();print '</html>';1;[root@lockey cgi-bin]#
5. 数据查询(核心代码块)
my $sth = $dbh->prepare("SELECT * FROM User"); # 预处理 SQL 语句$sth->execute(); # 执行 SQL 操作 # 循环输出所有数据while ( my @row = $sth->fetchrow_array() ) { print '<p>-----------</p>'; print join('\t', @row)."\n"; print '<p>-----------</p>'; }
结果:
阅读全文
1 0
- Apache 配置CGI脚本操作数据库之Perl操作
- Apache 配置CGI脚本操作数据库
- Apache Web 服务器配置CGI程序,执行Python、Perl脚本
- 自动化脚本之Perl文本操作
- Perl脚本常用操作
- Perl连接Oracle数据库的一些操作脚本【转】
- Perl操作Mysql数据库
- Perl操作MySQL数据库
- Perl DBI 数据库操作
- perl 操作mysql 数据库
- apache perl cgi
- Apache源代码注释之执行CGI脚本
- Linux下 Apache服务器配置CGI(perl)
- Tomcat 配置CGI perl
- 生成数据库操作脚本
- 数据库结构操作脚本
- 用脚本操作数据库
- shell脚本操作数据库
- 读取文件的内容
- 第一章:1.1.4信号运算
- HashMap源码分析
- 错误页面不暴漏,显示到一个漂亮页面
- 图像处理与matlab实例之图像平滑(一)
- Apache 配置CGI脚本操作数据库之Perl操作
- codeforces839B(88/600)
- 面向大型集群的简化数据处理(转)
- LeetCode 660 Remove 9 (LeetCode Weekly Contest 45)
- Informatica基础系列(一)——Helloworld
- PyCharm装不了pywin32的解决办法
- JVM中的锁
- 标识符
- Android Kotlin —— 语言结合