Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: DBD::mysql "Column count doesn't match value count"

by Paladin (Vicar)
on Nov 28, 2006 at 18:29 UTC ( [id://586549]=note: print w/replies, xml ) Need Help??


in reply to DBD::mysql "Column count doesn't match value count"

Shouldn't this:

INSERT into monica.event (msg, source, situation, version, date, hostn +ame, last_uid, sub_origin, component, guid, severity, adapter_host) v +alues (????????????)

actually be:

INSERT into monica.event (msg, source, situation, version, date, hostn +ame, last_uid, sub_origin, component, guid, severity, adapter_host) v +alues (?,?,?,?,?,?,?,?,?,?,?,?)
Replace the line:
my $places = join ', ', ('?' x scalar keys %slots);
with
my $places = join ', ', (('?') x scalar keys %slots);

Replies are listed 'Best First'.
Re^2: DBD::mysql "Column count doesn't match value count"
by Random_Walk (Prior) on Nov 28, 2006 at 18:40 UTC

    Yes it should ! thank you so much, this is the first time I have used placeholders so I completely missed that. Those two brackets have cost me half my hair today.

    Cheers,
    R.

    Pereant, qui ante nos nostra dixerunt!
Re^2: DBD::mysql "Column count doesn't match value count"
by bart (Canon) on Nov 29, 2006 at 12:19 UTC
    I take the opportunity to point to DBIx::Simple, which provides means to insert this kind of stuff automatically, if you use a double question mark.
    $db->query('INSERT into monica.event (msg, source, situation, version, + date, hostname, last_uid, sub_origin, component, guid, severity, ada +pter_host) values (??)', 'this is a test event, ignore', 'Testing', ' +START', '0.1', '2006-11-28 19:13:18', 'test', '', 'SelectDocument', ' +IT_SERVICE', '623375574', 'CRITICAL', 'this_box');
    Or even, using the SQL::Abstract mode:
    $db->insert('monica.event' => { 'msg' => 'this is a test event, ignore', 'source' => 'Testing', 'situation' => 'START', 'version' => '0.1', 'date' => '2006-11-28 19:13:18', 'hostname' => 'test', 'last_uid' => '', 'sub_origin' => 'SelectDocument', 'component' => 'IT_SERVICE', 'guid' => '623375574', 'severity' => 'CRITICAL', 'adapter_host' => 'this_box' });
    which I like very much.

    DBIxSimple will build the proper SQL statement, and cache the statement handle for you, for if you use it more than once. Which is very neat.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://586549]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2024-04-24 01:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found