--- Wade Smart <[EMAIL PROTECTED]> wrote:

> I have been having a problem inserting data into the db. Well, that isnt
> true. I tested this thoroughly on my own system before uploading it to the 
> server and then the error occurred right away.
> 
> The query:
> INSERT INTO 
>
deer_product(deer_type,name,parent_father,parent_mother,parent_father_father,parent_father_mother,parent_mother_father,parent_mother_mother,parent_father_father_father,parent_father_father_mother,parent_father_mother_father,parent_father_mother_mother,parent_mother_father_mother)
> 
> VALUES ('doe', 'Jaky', 'Big Jake', 'Dropper Doe', 'MAx', 'Y-35', 'Dropper',
> 'T 
> Condict Found''Angus', 'Waldvogel Chief Doe', 'Waldvogel Boomer', 'Tex Doe',
> 'T 
> Condict Found')
> 
> You'll see the problem is just before 'Angus'; there is no comma there.
> 
> I use this little script to handle the data query:
> $lastdeerkey = end($deer_key);
> foreach($deer_key as $key => $value){
>    if($value != $lastdeerkey){
>      $deer_key[$key] = $value.",";
>    }
> }                                     
> 
> // put commas between values
> 
> foreach($deer_data as $key => $value){
>    $deer_data[$key] = "'".$value."'";
> }                                     
> 
> $lastdeervalue = end($deer_data);
> foreach($deer_data as $key => $value){
>    if($value != $lastdeervalue){
>     $deer_data[$key] = $value.", ";
>    }
> }
> 
> I cant see that there is an error but can anyone see something I missed?
> Im not sure why id didnt put in a comma on that one item though.
> 
> Wade

Queries like that become really hard to read and debug when things go wrong. 
You are using a format like this:

INSERT INTO tablename (col1, col2, col3) VALUES ('val1', 'val2', 'val3');

When there are just a few columns and values, it's not too hard to work with. 
However, I usually use this alternate syntax which keeps the field and value
together in the query:

INSERT INTO tablename SET col1='val1', col2='val2', col3='val3';

It's even a little shorter. :)  The main benefit is that it is easier to
compose the query in loop structures since you usually have both the field name
and the value at a given instant.

As far as why you are getting missing commas, I'm not sure.  However, if one of
your inputs had a single quote and it was not escaped, strange things can
occur.  Validate all inputs sent to a query or really bad things can happen.

James

Reply via email to