2013-06-28 47 views
-1

我希望在web服务器上使用perl脚本根据来自端口的信息创建一些插入语句。我有基于PHP的网站与db沟通,我想了解如何通过perl连接到相同的PHP数据库连接,并在perl脚本函数中记录我的插入语句。 (对不起,我是perl的新手,我没有创建perl脚本。)将连接字符串从PHP传递到perl脚本

+0

为了给出更准确的答案,您需要告诉我们更多。您的Perl脚本是否已经创建了SQL查询?你有数据吗?你想知道如何将数据发送到你的数据库?你是否按照我们的假设使用了mysql,或者其他什么?请给我们更多的细节。 – simbabque

+0

感谢您对我的问题感兴趣,不是没有,我的程序给了我想在网上使用,但不幸的是它的Perl书面。 – acidstrike

+0

你能解决这个问题吗?如果其中一个答案对您有帮助,请点击答案左侧的勾号接受答案,以便其他人可以看到它解决了问题。查看[faq#howtoask]了解更多信息。 – simbabque

回答

0

连接到MySQL w/Perl非常简单。只要使用与您使用w/PHP相同的细节,前提是两个脚本都在同一台服务器上(或者您的DBMS接受外部连接)。

use DBI; 
$dbh = DBI->connect("dbi:mysql:databasename:localhost", 'username', 'password'); 
2

您可以使用具有相同凭据但不相同连接的相同数据库。

如果您不知道凭据,请进入您的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); 
} 
+0

我看到你是一个Perl人,所以我会削减你一些松懈:p不推荐mysql_ *函数,因为它们已被弃用,不支持准备好的语句等。他应该使用PDO或MySQLi。 –

+2

我不推荐他们,我只是假装他的PHP可能有他们,所以这将是寻找他的数据库证书的地方。我上次使用这些东西是很久以前的事了。如果有OOp模块可用,这些可能很好。 ;-) – simbabque

+0

@WayneWhitty:好? :) – simbabque