[PHP] vervangen aanhalingstekens met str_replace *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 82289

Topicstarter
hallo,

ik heb een onderstaand stukje php code. in de string staat een enkel aanhalingsteken maar bij het uitvoeren van een insert query krijg ik een foutmelding. ik heb al uitgevonden dat het aan het aanhalingsteken ligt want haal ik die weg werkt het prima

PHP:
1
2
3
$naam = "test";
$plaats = "'s-Gravenhagen";
mysql_query ("INSERT INTO personen (naam, plaats) VALUES ('$naam', '$plaats')") or die("Er is een fout op getreden tijdens het invoeren van de gegevens");


weet iemand hoe je het aanhalingteken bijvoorbeeld kunt vervangen met een ander teken (welke maakt niet uit als hij maar werkt in de query)

PHP:
1
str_replace("'","_",$plaats);

bovenstaande werkt niet namelijk

[ Voor 13% gewijzigd door Anoniem: 82289 op 08-06-2003 17:30 ]


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 21-02 17:33

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Anoniem: 82289

Topicstarter
dit werkt prima hartelijk dank voor de hulp ik zat allemaal te klooien met str_replace maar zo gaat t veel gemakkelijker

nogmaals bedankt

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 21-02 17:33
Het probleem doet zich voor omdat MySQL de volgende query te verwerken krijgt:

INSERT INTO personen (naam, plaats) VALUES ('test', ''s-Gravenhagen')

De volgende doe wel wat je wilt:

INSERT INTO personen (naam, plaats) VALUES ('test', '\'s-Gravenhagen')

Let dus op de backslash voor de apostrophe. De backslash is een zogenaamde escape character. Met addslashes kan je die automatisch toevoegen aan een string. Lees je dus even op php.net in over escape characters, want soms zet PHP die er automatisch al in.

En BTW:

PHP:
1
str_replace("'","_",$plaats);

Werkt niet, wel werkt het volgende:
PHP:
1
$plaats = str_replace("'","_",$plaats);

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.