mhanna2755 has asked for the wisdom of the Perl Monks concerning the following question:
I am trying to use json data as parameters in a mysql store procedure. I am getting a 502 error when i send my post to my perl script. If I manually enter the parameters in my script it works, so i have narrowed down my issue to $sth->execute($input->{to}, $input->{from}, $input->{id}, $input->{body});
use strict; use warnings; # # need CGI, JSON, # MIME::LITE for email, # and DBI/DBD::mysql for DB operations. # use CGI (); use JSON (); use DBI; use DBD::mysql; use MIME::Lite; # # Declare variables # my ($status, $email, $input); my $q = CGI->new; my $json = JSON->new->utf8; if ($q->param('POSTDATA')) { $input = $json->decode( $q->param('POSTDATA') ); } else { &SimpleJSONResponse("error","no JSON data found"); exit(0); } # # test that all sms values exist # if not, return error # unless (($input->{to}) && ($input->{from}) && ($input->{body}) && ($in +put->{id})) { # # if we don't get the required fields from flowroute, # return an error # &SimpleJSONResponse("error","required fields not present"); } else { # # we received the required fields from flowroute # connect to database # my $data_source = "DBI:mysql:database=flowroute;host=localhost"; my $user = "user"; my $password = "password"; my $dbh = DBI->connect($data_source, $user, $password) or die &Simp +leJSONResponse("error","cannot connect to db"); # # run stored procedure add_sms # stores sms to database and returns the email address # my $sql = "call add_sms(?, ?, ?, ?)"; my $sth = $dbh->prepare($sql) or die &SimpleJSONResponse("error","c +annot prepare sql"); $sth->execute($input->{to}, $input->{from}, $input->{id}, $input->{ +body}); } # # Subroutines # sub SimpleJSONResponse() { my($key, $value) = @_; print $q->header(-type => "application/json", -charset => "utf-8"); print $json->encode({ $key => $value }); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: using json post in mysql stored procedure
by stevieb (Canon) on Jan 24, 2017 at 01:45 UTC | |
by Anonymous Monk on Jan 24, 2017 at 20:46 UTC |