Re: Re: Inserting NULL Integer Values
| From: | tg-php at gryffyndevelopment dot com | Date: | Tue, 18 Oct 2005 17:42:19 +0000 |
| Subject: | Re: Re: Inserting NULL Integer Values | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-224287@lists.php.net to get a copy of this message | ||
What Ben said is correct, but I'd like to elaborate so you know why it's correct.
The INSERT statement you're trying to end up with is:
INSERT INTO MYTABLE (column1, column2) VALUES ('somevalue1', 'somevalue2')
I'm not sure why it wouldn't work if you ended up with:
INSERT INTO MYTABLE (column1, column2) VALUES ('', '')
That should work. You can set it so you can't have NULL, but dont know of anything that tells
the database not to accept '' as a value (barring triggers or other things that check on
insert).
Anyway, assuming that the first example is what youre going for, then it sounds like this is what
you want if the first value is empty:
INSERT INTO MYTABLE (column1, column2) VALUES (NULL, 'somevalue2')
So I might try something like this:
$value1 = "";
$value2 = "somevalue";
if (is_empty($value1)) {
$value1 = "NULL";
} else {
$value1 = "'" . $value1 . "'";
}
if (is_empty($value2)) {
$value2 = "NULL";
} else {
$value2 = "'" . $value2 . "'";
}
$qid = mysql_query("INSERT INTO MYTABLE (column1, column2) VALUES ($value1, $value2)");
That way, if it's empty, you'll get NULL, otherwise you'll get 'somevalue'.
I use double quotes (") PHP variable values (yeah, I know.. some people have issues because it
makes everything inside interpret..blah blah..) and use single quotes (') for SQL stuff. Looks
like you do the opposite. Whatever works for you.
Good luck!
-TG
= = = Original message = = =
Either cast your empty ints (which should make it zero) or do an if
(!isset($variable)) $variable = 'NULL';
Ben
On Tue, 18 Oct 2005 12:15:41 -0400, "Shaun" <shaunthornburgh@hotmail.com>
wrote:
> Hi,
>
> Up to this point in time I used to construct my insert statements like
> this
>
> $qid = mysql_query('INSERT INTO MYTABLE (
> column1,
> column2,
> ) VALUES (
> "'.$value1.'",
> "'.$value2.'"
> )');
>
> However I understand it is better to remove the quote marks around an
> insert
> if the column type is an integer. This is easy to do, however if the
> $value
> is empty it causes a mysql error. Has anyone encountered this and found a
> solution?
>
> Thanks for your advice
___________________________________________________________
Sent by ePrompter, the premier email notification software.
Free download at http://www.ePrompter.com.