将连接字符串从PHP传递到perl脚本
问题描述:
我希望在web服务器上使用perl脚本根据来自端口的信息创建一些插入语句。我有基于PHP的网站与db沟通,我想了解如何通过perl连接到相同的PHP数据库连接,并在perl脚本函数中记录我的插入语句。 (对不起,我是perl的新手,我没有创建perl脚本。)将连接字符串从PHP传递到perl脚本
答
连接到MySQL w/Perl非常简单。只要使用与您使用w/PHP相同的细节,前提是两个脚本都在同一台服务器上(或者您的DBMS接受外部连接)。
use DBI;
$dbh = DBI->connect("dbi:mysql:databasename:localhost", 'username', 'password');
答
您可以使用具有相同凭据但不相同连接的相同数据库。
如果您不知道凭据,请进入您的php脚本,并寻找mysql_connect
命令或更现代的东西来创建数据库连接。恐怕我不熟悉这一点,所以我无法帮助你。取出服务器名称,端口,数据库名称和用户名/密码,并在Perl程序中使用DBI。
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect('dbi:mysql:db:hostname', $username, $password);
您现在可以使用$dbh
数据库句柄将数据插入数据库,例如,像这样:
my $sth = $dbh->prepare('INSERT INTO my_table (foo, bar) VALUES (?, ?)');
$sth->execute('val1', 'val2');
# or more fancy, if you have an array ref with more array refs:
foreach my $line (@$data) {
$sth->execute(@$line);
}
为了给出更准确的答案,您需要告诉我们更多。您的Perl脚本是否已经创建了SQL查询?你有数据吗?你想知道如何将数据发送到你的数据库?你是否按照我们的假设使用了mysql,或者其他什么?请给我们更多的细节。 – simbabque
感谢您对我的问题感兴趣,不是没有,我的程序给了我想在网上使用,但不幸的是它的Perl书面。 – acidstrike
你能解决这个问题吗?如果其中一个答案对您有帮助,请点击答案左侧的勾号接受答案,以便其他人可以看到它解决了问题。查看[faq#howtoask]了解更多信息。 – simbabque