Maison  >  Questions et réponses  >  le corps du texte

Utilisez des requêtes paramétrées PDO pour créer des méthodes avec des instructions LIKE

<p>这是我尝试的代码:</p> <pre class="brush:php;toolbar:false;">$query = $database->prepare('SELECT * FROM table WHERE colonne LIKE "?%"'); $query->execute(array('value')); tandis que ($results = $query->fetch()) { echo $results['colonne']; }</pre></p>
P粉394812277P粉394812277397 Il y a quelques jours542

répondre à tous(2)je répondrai

  • P粉722521204

    P粉7225212042023-08-23 09:18:33

    Pour ceux qui utilisent des paramètres nommés, voici comment utiliser la correspondance partielle dans la base de données MySQLLIKE进行% :

    WHERE column_name LIKE CONCAT('%', :dangerousstring, '%')

    où se trouvent les paramètres nommés :dangerousstring.

    En d'autres termes, vous utilisez des symboles % explicites sans échappement dans vos requêtes, qui sont distincts de la saisie de l'utilisateur.

    EDIT : Pour Oracle Database, la syntaxe de jointure utilise l'opérateur de jointure : ||, elle se simplifiera donc en :

    WHERE column_name LIKE '%' || :dangerousstring || '%'

    Cependant, comme @bobince l'a mentionné ici, il y a quelques mises en garde :

    Par conséquent, il y a d'autres choses à prendre en compte lors de la combinaison du like et du paramétrage.

    répondre
    0
  • P粉731861241

    P粉7318612412023-08-23 00:34:09

    J'ai trouvé la réponse après avoir posté :

    $query = $database->prepare('SELECT * FROM table WHERE column LIKE ?');
    $query->execute(array('value%'));
    
    while ($results = $query->fetch())
    {
        echo $results['column'];
    }

    répondre
    0
  • Annulerrépondre