login  Naam:   Wachtwoord: 
Registreer je!
 Forum

prepared statement en LIKE (Opgelost)

Offline W0etah - 18/04/2009 22:08
Avatar van W0etahPHP beginner Ik was bezig met een scriptje waarbij je kan zoeken naar gebruikersnamen.

Nu bij een gewone mysql_query gebruik je de % tekens, maar hoe je het doet bij een prepared statement vind ik niet.

wanneer ik:
$sql = "SELECT gebruikersnaam FROM leden WHERE gebruikersnaam = %?%";
doe, dan krijg ik erop een error:
Citaat:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%?%' at line 1


ik had het dan geprobeerd om dit te doen:
$string = "%".$_POST['gebruikersnaam']."%";

maar ook zonder resultaat.

Weet iemand misschien hoe ik dit wel juist kan doen?

Mijn code:
  1. $sql = "SELECT gebruikersnaam FROM leden WHERE gebruikersnaam = ?";
  2. if($statement = $dbc->prepare($sql)) {
  3. $string = "%".$_POST['gebruikersnaam']."%";
  4.  
  5. $statement->bind_param("s", $$string);
  6. if($statement->execute()) {
  7. $statement->bind_result($gebruikersnaam);
  8.  
  9. echo "<ul>";
  10. while($statement->fetch()) {
  11. echo "<li>".$gebruikersnaam."</li>";
  12. }
  13. echo "</ul>";
  14.  
  15. } else {
  16. die($statement->error);
  17. }
  18. } else {
  19. die($dbc->error);
  20. }]

5 antwoorden

Gesponsorde links
Offline vinTage - 18/04/2009 22:15
Avatar van vinTage Nieuw lid hmm, dat prepare behoort toch tot een of andere classe? ik heb er verder nog nooit van gehoord en moet je query dus gewoon iets in onderstaande trant zijn:

  1. $sql = mysql_query("SELECT gebruikersnaam FROM leden WHERE gebruikersnaam LIKE '%".$_POST['naam']."%'");


Als ik de plank 100% mis sla, dan heb ik niets gezegd 
Offline W0etah - 18/04/2009 22:19
Avatar van W0etah PHP beginner Je zal waarschijnlijk een windvlaag veroorzaakt hebben, want de plank heb je niet geraakt 

http://be.php.net/pdo.prepared-statements

Hoe het in een gewone mysql_query moet wist ik nog wel, maar ik zal wss gewoon iets fout doen bij mij, maar ik vind het echt niet
Offline vinTage - 18/04/2009 22:22
Avatar van vinTage Nieuw lid
W0etah schreef:
Je zal waarschijnlijk een windvlaag veroorzaakt hebben, want de plank heb je niet geraakt 

http://be.php.net/pdo.prepared-statements


WOEI   inderdaad wind !

maar moet je dan nog steeds niet LIKE erbij ploppen ?
Offline W0etah - 18/04/2009 22:26
Avatar van W0etah PHP beginner VinTage, HELD!!  
Je mag een fles whisky gaan kopen op mijn kosten (je betaald natuurlijk zelf:))

Waarom maak ik altijd zo'n stomme fouten
Ik was gewoon LIKE vergeten en dan ging het wel
  1. $sql = "SELECT gebruikersnaam FROM leden WHERE gebruikersnaam LIKE ?";
  2. if($statement = $dbc->prepare($sql)) {
  3. $string = "%".$_POST['gebruikersnaam']."%";
  4. $statement->bind_param("s", $string);
  5. if($statement->execute()) {
  6. $statement->bind_result($gebruikersnaam);
  7.  
  8. echo "<ul>";
  9. while($statement->fetch()) {
  10. ?>
  11. <li onclick='addToInput("<?php echo $gebruikersnaam; ?>")><?php echo $gebruikersnaam; ?></li>
  12. <?php
  13. }
  14. echo "</ul>";
  15.  
  16. } else {
  17. die($statement->error);
  18. }
  19. } else {
  20. die($dbc->error);
  21. }
Offline vinTage - 18/04/2009 22:32
Avatar van vinTage Nieuw lid JEEHAAA zuipen !!  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s