[PHP] ereg_replace() *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vraag:

ik heb de volgende DVD Titel:
12 Monkey'sCOLOMBIA/TRISTAR

en de volgende foutmelding:

You have an error in your SQL syntax near 's', 'COLOMBIA/TRISTAR', '21', '')' at line 213513DVD FILM 12 Monkey'sCOLOMBIA/TRISTAR

en nu probeer ik met ereg_replace
de ' in Monkey's en de / tussen colombia/Tristar te replacen met niets

$input=ereg_replace(" ' ","","$input");
$input=ereg_replace("/","","$input");

maar ik krijg het niet voor elkaar om het werkend te krijgen

Acties:
  • 0 Henk 'm!

Verwijderd

Haal je qoutes eens weg om de variabele $input binnen je ereg_replace en eventueel ook de spaties om de enkele qoute die vervangen moet worden door niets

[ Voor 38% gewijzigd door Verwijderd op 01-08-2003 09:45 ]


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Ik ga even in m'n kristallen bol kijken en ik zie:
Je probeer die DVD titel in een MySQL database te inserten middels een SQL waarin je parameters geconcateneerd worden.
Door het quotje wordt je SQL dan afgesloten.
De oplossing ligt in het magische woord: addslashes.

Uit het feit dat ik dit weet terwijl ik nog nooit wat met PHP of MySQL heb gedaan kun je afleiden dat je dit met de search had moeten vinden.

Who is John Galt?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Addslashes was niet de oplossing

$input=ereg_replace("[\/\]","","$input");

heeft goed geholpen

toch bedankt voor alle moeite

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Waarom geen preg_replace (vaak sneller) of een http://nl2.php.net/str_replace (nog sneller)

En waarom werkte add-slashes niet? Welke db werk je mee? Vergeet je de ; niet te escapen verder?

[ Voor 36% gewijzigd door Glimi op 01-08-2003 10:00 ]


Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Waarom in ****snaam een reguliere expressie ( ereg_replace ) als je het met een simpele str_replace kunt doen :?
PHP:
1
$input=str_replace("'",'',$input);

edit:

Mmm, moet m'n reply sneller typen ;) Glimi was me voor....

[ Voor 27% gewijzigd door beetle71 op 01-08-2003 10:05 ]


Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Verwijderd schreef op 01 August 2003 @ 09:40:
$input=ereg_replace("/","","$input");
Werkende versie: $input=ereg_replace('/',"","$input"); :)
Verwijderd schreef op 01 August 2003 @ 09:55:
Addslashes was niet de oplossing
Dat is het alleen maar als je die slashes in de database wil kunnen opslaan én ze er weer uit kunnen halen. Maar als je dat niet interesseert... :X
$input=ereg_replace("[\/\]","","$input");
vervangt (dacht ik) niet alleen slashes, maar ook backslashes en is dus geen vervanging van het statement uit de topicstart.

Iig moet je dit eens goed lezen, want daar staat exact in *waarom* je startpost niet werkte.


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Voor variabelen die de (mysql) DB in moeten is er mysql_escape_string, geen geklooi met string replaces en andere zaken.
Ik zie niet in waarom je die ' en / niet zou willen kunnen terugzien, dat is toch onderdeel van de titel/naam/etc van zo'n film/bedrijf dan :?
Pagina: 1