Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Include a single quote in a string

Tags:

html

forms

php

I want to have a dropdown from MySQL data where I want <option value ='and acode ='Aircraft1''>, including the two single quotes to pass it into a query. I'm including a backslash already, but it's not working. What's wrong with my code?

<?php
  $asql = "SELECT * FROM aircraft";
  $aresult = mysql_query($asql);
?>
Aircraft:
<select name="aircraft">
<option value="and (acode = 'RP-C1086' or acode='RP-C1728')" checked/>All</option>
<?php
  while($arow=mysql_fetch_array($aresult))
  {
    echo "<option value='and acode=\'" . $arow['reg'] . "\''>" . $arow['reg'] . "</option>";
  } ?>
</select>
like image 254
xjshiya Avatar asked Apr 28 '26 17:04

xjshiya


1 Answers

From the MySQL manual:

There are several ways to include quote characters within a string:

  • A “'” inside a string quoted with “'” may be written as “''”.

  • A “"” inside a string quoted with “"” may be written as “""”.

  • Precede the quote character by an escape character (“\”).

  • A “'” inside a string quoted with “"” needs no special treatment and need not be doubled or escaped. In the same way, “"” inside a string quoted with “'” needs no special treatment.

When coding in PHP, remember to use \\ in a string literal to get a single \ in the string value.

If you want to escape the quote in an HTML attribute, replace the ' with &quot;. Alternatively, quote the attribute value with ". These are the techniques to use regardless of where the string value came from. See this question.

like image 89
Ted Hopp Avatar answered Apr 30 '26 07:04

Ted Hopp



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!