2013-06-28 1 views
-1

Я хочу использовать Perl-скрипт на веб-сервере для создания некоторых инструкций вставки на основе информации, поступающей из порта. У меня есть сайт на базе PHP, который говорит с db, я хочу узнать, как я могу подключиться к одному и тому же соединению PHP db через perl и записывать свои вставные инструкции во время функции perl script. (Извините, я новичок в perl, и я не создал этот скрипт perl.)Пропустить строку подключения с PHP на Perl-скрипт

+0

Чтобы получить более точный ответ, вам нужно рассказать нам больше. Ваш скрипт Perl уже создает SQL-запросы? У вас есть данные? Вы хотите знать, как отправить эти данные в свою базу данных? Вы используете mysql, как мы предполагали, или что-то еще? Пожалуйста, дайте нам более подробную информацию. – simbabque

+0

Благодарим вас за интерес к моему вопросу, его еще нет, его программу, предоставленную мне, которую я хочу использовать в Интернете, но, к сожалению, ее написано на perl. – acidstrike

+0

Вы смогли это решить? Если один из ответов помог вам, пожалуйста, примите его, нажав галочку слева от ответа, чтобы другие могли видеть, что проблема решена. Подробнее см. В [faq # howtoask]. – simbabque

ответ

0

Подключение к MySQL с Perl довольно просто. Просто используйте те же детали, что и при использовании w/PHP, при условии, что оба сценария находятся на одном сервере (или ваша СУБД принимает внешние подключения).

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

Вы можете использовать одну и ту же базу данных с теми же учетными данными, но не с тем же соединением.

Если вы не знаете учетные данные, зайдите в свой php-скрипт и найдите команду mysql_connect или что-то более современное, чтобы создать соединение db. Боюсь, я не знаком с этим, поэтому я не могу вам помочь. Возьмите имя сервера, порт, имя базы данных и имя пользователя/пароль и используйте его с DBI в своей программе Perl.

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-файл может иметь их, поэтому это место будет искать его учетные данные db. В прошлый раз я использовал этот материал давным-давно. Если есть доступные модули OOp, они, вероятно, великолепны. ;-) – simbabque

+0

@WayneWhitty: лучше? :) – simbabque