Re: MySQL Problem with PHP
| From: | BB | Date: | Wed, 26 Jun 2002 13:34:44 +0000 |
| Subject: | Re: MySQL Problem with PHP | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-103964@lists.php.net to get a copy of this message | ||
I understand about the concat function, but that doesn't really fit into my
scheme of things
I run all text for the web through a function SafeSQL so that values from
the web don't make SQL error or potential hacks occur.
All SafeSQL was doing (for mssql, access and just about any other db) was
$text = preg_replace("/\'/","' + CHAR(39) + '",$text) so when SQL
added the
rows with a value of 0 instead of the string I was baffled.
Shame mysql doesn't support inline concatenation
"John Holmes" <holmes072000@charter.net> wrote in message
news:000701c21d14$fc054370$b402a8c0@mango...
> > INSERT INTO
contracts (keyH§„ÐSûŸŽ
> > üŒÖ=, content) VALUES (1,'blah blah blah
> > character 39 is a single speach mark '+CHAR(39)+' blah blah blah')
>
> That's because you are adding strings together, not concatenating them
> (this isn't javascript!)
>
> Use CONCAT() in MySQL to join strings together.
>
> mysql> select 'this'+char(39)+'that';
> +------------------------+
> | 'this'+char(39)+'that' |
> +------------------------+
> | 0 |
> +------------------------+
> 1 row in set (0.03 sec)
>
> mysql> select concat('this',char(39),'that');
> +--------------------------------+
> | concat('this',char(39),'that') |
> +--------------------------------+
> | this'that |
> +--------------------------------+
> 1 row in set (0.01 sec)
>
> ---John Holmes...
>