próbuję użyć PDO::quote
uciec łańcuch znaków w wyrażeniu LIKE
, więc ciąg użytkownik nie musi być otoczony jak w:Jak korzystać z PDO :: cytuj bez pobierania ciągu w cudzysłowie?
LIKE "%userStringToEscape%"
Czy istnieje sposób to zrobić?
próbuję użyć PDO::quote
uciec łańcuch znaków w wyrażeniu LIKE
, więc ciąg użytkownik nie musi być otoczony jak w:Jak korzystać z PDO :: cytuj bez pobierania ciągu w cudzysłowie?
LIKE "%userStringToEscape%"
Czy istnieje sposób to zrobić?
$var = "%userStringToEscape%";
$var = $stmt->quote($var);
$sql = "SELECT * FROM table WHERE field LIKE $var";
samo dotyczy sporządzanych sprawozdań
Nie odpowiedział na pytanie. –
Przejdź bezpośrednio, lol –
Odpowiedź na pytanie brzmi: "nie możesz tego zrobić (i nie wydaje się, że potrzebujesz - patrz odpowiedź Szrapnela - chyba że łączysz wiele wejść" ucieczkowych "w jedno string) ":) –
Zastosowanie substr($db->quote($var), 1, -1)
Naprawdę jednak nie. Pojawią się większe problemy niż te, z którymi zacząłeś.
Czyste rozwiązaniem na to jest, oczywiście, $db->quote('%'.$var.'%')
Hej, nie ma potrzeby, aby zgodzić! Przynajmniej jest to bezpośrednia odpowiedź na to pytanie. Zamiast tego zastanówmy się nad pytaniem ;-) –
Nie rozumiem pytań typu "Właściwie nie". Jeśli ją opublikowałeś, to naprawdę ją polecasz. Dlaczego by nie zdecydować się najpierw i napisać odpowiedź, która nie jest sprzeczna z samym sobą? –
Dobrze, zamienię to na "Naprawdę" –
Wystarczy zrobić?
$like = $pdo->quote("%{$userStringToEscape}%");
$sql = "SELECT * FROM field LIKE {$like}";
Dlaczego po prostu nie wziąć '" 'z rachunku I niech' % userStringToEscape% '" właścicielem "cudzysłowów? –
Po prostu użyj' substr ($ str, 1, -1) 'dla niego? Wydaje się jednak głupotą zrobić. –
% zostanie uciec przez funkcję, którą myślę - To jest trochę brudne, by usunąć taki cytat :) – Leto