Šta je novo?

PHP variabla u SQL Like klauzuli?

tarzan1321

Čuven
Učlanjen(a)
12.06.2004
Poruke
326
Poena
619
Problem je sledeci. Imam kod koji je sledeceg oblika:
Kod:
$alpha = $this->db->escape($beta);
$q = $this->db->query("SELECT * FROM table WHERE column = $alpha");
Zelim da promenim ovu WHERE klauzulu da bude tipa LIKE i da pretrazuje ovu alpha promenljivu kao patern, tj. da ne trazi tacnu vrednost vec kao niz karaktera u stringu. Probao sam raznorazne sintaksne kombinacije sa neta, ali nista ne vraca rezultate. Trebalo bi da bude nesto tipa:
Kod:
$alpha = $this->db->escape($beta);
$q = $this->db->query("SELECT * FROM table WHERE column LIKE '%' + $alpha + '%'");
ali to ne funkcionise.

Ako neko ima neki predlog...
 
PHP:
$alpha = $this->db->escape($beta);

$sql = "SELECT * FROM table WHERE column LIKE '%$alpha%'";
$q = $this->db->query($sql);

ovo sigurno radi, koristim ga na milon mesta
u slucaju da ipak ne proradi onda je greska negde u php-u
 
Mozes probati sa koriscenjem sprintf funkcije. Uvek je koristim kod nekih slozenih SQL koji se preplicu sa php varijablama i slicno. Samo sto postoji problem jer u sprintf % (procenat) je u funkciji naredbe, tako da se i on sam treba zameniti.
 
Uspeh konacno 🙂)
Problem je bio u escape funkciji koja pored prebacivanja promenljive u string, automatski dodaje i single quotes i onda je dolazilo do dupliranja kod LIKE-a. Kad se izbacio escape, radi kako je verbatim napisao. Fala za pomoc 😉
 
Nazad
Vrh Dno