[ Predrag Supurovic @ 02.02.2020. 10:15 ] @
Naleteo sam na nezgodan problem.

Treba da napravim upit nad tableom (SQLITE) u kome korisnik unosi izraz za LIKE uslov.
Kada to uradim ručno praveći SQL upit to radi ali ja to hoću da uradim preko PDO i to neprolazi. Upiti ne nalaze ništa u tabeli.

Primer koda koji ne radi (kucano napamet, moj primer je znatno složeniji):

Code:


$m_db = new PDO("sqlite:test");
$m_sql = " SELECT * FROM tabela WHERE ime LIKE ':kljuc'";
$m_stmt = $m_db->prepare($m_sql);
$m_stmt ->bindParam(':kljuc', "A%");
$m_stmt->execute();



Sve što sam uspeo da nađem su rpeporuke da se sam SQL upit napravi tako da džoker znaci za LIKE budu u SQL stringu a da se uneće samo traćena vrednost. Meni to ne odgovara jer ne znam unapred na kom mestu u ključu će se nalaziti džoker znaci, ni koliko će ih biti.
[ Branimir Maksimovic @ 02.02.2020. 10:34 ] @
Zar ne treba prvo bind pa onda prepare?

edit:
a ne za php:
ovako
https://www.php.net/manual/en/sqlite3stmt.bindparam.php

zapravo tebi treba bindvalue:
https://www.php.net/manual/en/sqlite3stmt.bindvalue.php
[ Deunan @ 02.02.2020. 10:37 ] @

Ne trebaju ti navodinici na parametru ':kljuc', samo ostavi :kljuc .
[ Predrag Supurovic @ 02.02.2020. 12:35 ] @
Heh, prvo sam probao bez navodnika pa nije išlo te sam i njih dodao.

Sad sam izbacio navodnike i prođe :)

Hvala :)