Escape "LIKE" query?

Programovacie jazyky, rady, poradňa...
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Escape "LIKE" query?

Príspevok od používateľa ehm123 »

Neviete ako zabezpecim LIKE query v php?

skusal som:

mysql_query(sprintf("SELECT * FROM `post` WHERE `text` LIKE '%%s%'", mysql_real_escape_string($UPDATE)));

Bohuzial bez uspechu.

Za kazdu radu dakujem.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

A čo ti tam nefunguje?
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''%s' at line 1

Problem bude najskor v tych "%" ktore sa pouzivaju pri like.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Dva znaky % za sebou v sprintf (a podobných funkciách) vrátia jeden znak %.
Nebolo by jednoduchšie použiť mysql_query("SELECT * FROM `post` WHERE `text` LIKE '%".mysql_real_escape_string($UPDATE)."%'");(prípadne tam ešte esacpe-ovať znak % napr. pomocou funkcie addcslashes).

PS: Ak by si tam chcel použiť tú sprintf funkciu, tak by ten reťazec vyzeral asi takto: '%%%s%%'.
Napísať odpoveď