2013-09-06 3 views
-1

Я пытаюсь вставить данные в базу данных MySQL:Вставка данных в базу данных MySQL из Perl

$response = $client->fql->query(
    query => ' 
    SELECT name, email, birthday, username, first_name, last_name, pic 
    FROM user 
    WHERE uid = me() 
    ', 
); 

print join "\n Name:", sort map { $_->{name} } @$response; 

$dbh->do(" 
    INSERT INTO Users(SNo,Name,Email,Birthday,UserName,FirstName,LastName) 
    VALUES(1, 
     sort map { $_->{name} } @$response, 
     'imm\@gmail.com', 
     '1987/12/10', 
     'imm', 
     'imm', 
     'Dee') 
"); 

$dbh->disconnect(); 

используется запрос MySQL в одной строке.

Этот оператор печати печатает имя правильно, но почему вышеуказанный оператор вставки sql не работает?

Я подключаю db, и после этого я получаю значение, и печать в браузере работает.

Почему инструкция mysql не принимает значение? При вставке базы данных не работает?

+0

Вы могли бы сделать это в одном 'INSERT ... SELECT' – RobEarl

ответ

1

Вы должны взглянуть на the official doc

и специально это:

# INSERT some data into 'foo'. We are using $dbh->quote() for 
# quoting the name. 
$dbh->do("INSERT INTO foo VALUES (1, " . $dbh->quote("Tim") . ")"); 

# Same thing, but using placeholders 
$dbh->do("INSERT INTO foo VALUES (?, ?)", undef, 2, "Jochen"); 
Смежные вопросы