Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Umieszczenie zmiennej ze stringiem pomiędzy apostrofami
Forum PHP.pl > Forum > Bazy danych > MySQL
AboutMe
Dzień dobry!

W zapytaniu select potrzebuję sprawdzić czy dany rekord jest odpowiedniego typu przez sprawdzenie ciągiem znaków:

  1. terms = 'string'


gdy powyższy kod przekształcę na coś takiego

  1. terms = '" . $string . "';


to zapytanie przestaje działać a var_dumb zwraca pusty obiekt.

Poniższy kod też nie zadziała przez apostrofy:

  1. terms = '{$string}'


Jak takie coś rozwiązaćquestionmark.gif?
viking
Poczytaj o bindowaniu parametrów.
Pyton_000
prawie Ci wyszło smile.gif

Kod
"'{$string)'"
AboutMe
No niestety
  1. "'{$string)'"
zwraca błąd
Parse error: syntax error, unexpected ''{$string}''

sprawdzę te bindowanie

Tomplus

zmienne dodane w {} na 100% działają, musisz coś psuć z apostrofami.

nie będzie działać jeżeli zrobisz:

  1. $sql = 'SELECT * FROM table WHERE name = "'{$Config->getUsername()}'";';


ale będzie działać tak:


  1. $sql = 'SELECT * FROM table WHERE name = '."'{$username}'".';';
  2. //albo
  3. $sql = "SELECT * FROM table WHERE name = '{$username}';"
  4. //albo
  5. $sql = "SELECT * FROM table WHERE name = '{$Config->getUsername()}';";


Możliwości jest więcej, chociaż najlepiej bindować zapytania SQL czy stworzyć zapytanie typu, które jest bezpieczne

  1. $sth = $dbh->prepare('SELECT * FROM table WHERE name = ?;');
  2. $sth->bindParam(1, $username);
  3. $sth->execute();
AboutMe
Okazało się że to była literówka w wartości zmiennej, myślnik zamiast podkreślnika sciana.gif Dzięki za fatygę smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2019 Invision Power Services, Inc.