Jump to content

Recommended Posts

Hi there i wonder if any1 can help me with a real silly problem.

 

I am tryin to insert an image into a mysql cell which is type varchar(500)

 

Basically this is what i am trying to insert :

 

<img alt=\'$reason\' src=../images/purple/smallcup_gold.gif width=16 height=13>

 

as you can see this is standard html for inserting an image, the alt of the image being the awkuad part.

 

i am trying to keep the original data and add another image next to it.

 

so i tried this statement :

 

$sql = \"UPDATE ut2003_clans SET cups=\'$cup1 <img alt=\'\'$reason\'\' src=../images/purple/smallcup_gold.gif width=16 height=13>\' WHERE clan_tag=\'$clan\'\";

 

mysql_query($sql);

 

here are what the variables =

 

cup1 = whats previously in the cell

alt = hello this is a test

 

 

i have been playin for this for a few hours now and its racking my brain, the main problem being the alt tag on the image.

 

It simply will display only the 1st word in the variable for example if

 

$reason = hello this is a test

 

it will only display hello.

 

 

I tried some error checkin and found that if remove the $reason variable and replace it with \' \'hello this is a test\' \'

 

it works fine

 

but then if i try double quotes around the variable $reason, it wont even insert anything??

 

 

I hope some1 can understand this and point me in the right direction

 

thanking you

 

Phil

Link to comment
https://forums.phpfreaks.com/topic/1076-mysql-update-statement-problems/
Share on other sites

Hope you can follow my $reason-ing here ;):

OK, you are trying to stuff a variable\'s contents into a sql field. The problem is that the variable doesn\'t contain the quote marks you need to reference the entire string, so the first space encountered terminates the string.

 

Now play machine and read the following, but only where it is in matching quotes:

$sql = \"UPDATE ut2003_clans SET cups=\'$cup1 <img alt=

Now do you see the problem?

Try it this way instead:

[php:1:057979cdcc]<?php

$sql = \"UPDATE ut2003_clans SET cups=\'$cup1 <img alt=\"\".$reason.\"\" src=../images/purple/smallcup_gold.gif width=16 height=13>\' WHERE clan_tag=\'$clan\'\";

?>[/php:1:057979cdcc]

Incidentally, the quotes you had around $reason were not double quotes [\"] but two single quotes [\'][\'] - that can\'t have helped either, since the resulting machine-read string would then be some very poor HTML!!

 

Hope that helps!

 

D

yep, no problem:

\"\".$reason.\"\"

would appear to the machine as

~\" + \"content of $reason\" + \"~

in other words, the backslash \'\' tells php to take the next charactre as is, not as a special character. As a consequence. the quote mark gets stored into the string along with all the text where previously it was being left out.

Think of the \'\' as being the escape character for PHP.

 

The period \'.\' is used in PHP to concatenate two strings, much like I used the \'+\' in the example above.

 

Hope that helps!

 

D

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.