Hallo,

Ik heb een formulier waarvan ik de data in de mysql zet. Eén van deze velden is achternaam en zet ik op onderstaande manier in de tabel:

$achternaam = mysql_real_escape_string($_POST["achternaam"]);

$query = "INSERT INTO client (achternaam) VALUES ('$achternaam')";
$result = mysql_query($query) or die(mysql_error());

Als ik dan dan in het veld "van 't Veld" invult in het formulier, dan komt er in de database "van \'t Veld" te staan.

Tot zover correct dacht ik.

Nu wil ik een zoek query maken waarbij ik alle achternamen vind die beginnen met "van 't".

Daarvoor heb ik gemaakt:

$find = "van 't";
$find2 = addslashes($find);

$query = "SELECT ID, achternaam FROM client WHERE achternaam LIKE '%" . $find2 . "%' ";
$result = mysqli_query($con,$query);

echo "Aantal gevonden records = " . mysqli_num_rows($result);

Ik krijg dus op het scherm te zien : Aantal gevonden records = 0

Iemand enig idee waar het fout gaat?

Nog een paar aanvullende opmerkingen / vragen:

* Ik zie nu dat de INSERT query (gedaan vanaf een andere website) nog op de 'oude manier gaat, mysql_query terwijl de SELECT query op de mysqli methode gaat. Dit zal toch niet een probleem zijn, los van het feit dat het niet erg consequent is?

* Nu zie ik dat op de server magic_quotes_gpc op ON staat, heeft dat nog gevolgen voor dit probleem?

* Is het uberhaupt raadzaam om de \ ook in de database op te nemen?

* Ik lees link en rechts dat mysql_real_escape_string depreciated is en dat je beter gebruik kan maken van mysqli. Heb je dan met mysqli geen last van injection?

Met vriendelijke groeten,

Arie
Oeps ......... :-)

Was inderdaad bezig om dit script om te zetten naar mysqli en had inderdaad bij de query's per ongeluk de oop manier gebruikt.

Bedankt voor het meekijken/denken, morgen maar weer eens verder om te kijken of alles nu goed gaat met de magic quotes bij de INSERT INTO de database en of ik kan zoeken naar achternamen die beginnen met "van 't"

Reageren