2017-02-09 1 views
2

Peut-être que le titre de la question n'est pas très clair mais je ne sais pas comment le décrire.MySQL, PHP; Modifier la valeur de la colonne avant de comparer

Je vais essayer d'expliquer:

J'ai une requête MySQL dans mon code PHP comme ceci:

$statement = $pdo->prepare('SELECT name FROM persons WHERE name = :name'); 
$statement->execute(array(':name' => "Peter-Loew")); 

Ce que je veux à est de modifier :name avant de comparer avec "Peter-Loew".

Je veux exécuter un code PHP comme celui-ci sur :name avant de comparer avec "Peter-Loew":

<?php 
function url_replace($url_replace) { 
$url_replace = str_ireplace(array('Ä','Ö','Ü'), array('Ae','Oe','Ue'), $url_replace); 
$url_replace = preg_replace('~[^a-zA-Z0-9]+~', '-', $url_replace); 
$url_replace = trim($url_replace, '-'); 
$url_replace = rtrim($url_replace, '-'); 
return $url_replace; 
} 
?> 

Comment puis-je faire cela? Ou est-ce que quelqu'un sait comment appeler ça ce que je cherche?

+0

im vers le bas vote parce que vous avez changé la question de manière significative depuis une réponse valable a été donné – cmorrissey

+0

en plus de cela ici est un générateur de limace http: // stackoverflow .com/questions/40641973/php-to-convert-string-to-slug/40642103 # 40642103 – cmorrissey

+0

Avoir beaucoup de limaces qui montreront la même page peut affecter votre référencement. –

Répondre

2

Vous cherchez mysql REPLACE:

$statement = $pdo->prepare('SELECT name FROM persons WHERE REPLACE(name, " ", "-") = :name'); 
$statement->execute(array(':name' => "Peter-Loew")); 
+1

Je ne comprends pas pourquoi vous demandez de remplacer «-' alors que votre vrai problème est évidemment d'un genre différent? –

+0

@David. . . Votre question est assez claire et cette réponse y répond. Si vous avez * une autre * question, posez-la comme autre question. Ne modifiez pas celui-ci. Cela invalidera juste cette réponse correcte, qui pourrait entraîner des downvotes. –

+0

Désolé, ma faute. Je pensais qu'il n'y avait aucun moyen de le faire dans SQL lui-même et je voulais garder la question claire. Pardon! J'ai édité ma question. – David