Autor Zpráva
Jack Finger
Profil
$query = "DELETE FROM `table` WHERE `url` = 'url'";
echo preg_replace("/(.*)`(.*)`(.*)/i", "\\2", $query, 1);

jak mi tohle může vrátit "url", když to mám nastavené na 1 překlad? Díky.
nightfish
Profil
přidej si modifikátor U
protože první (.*) ti teď "matchuje" výraz DELETE FROM `table` WHERE (kvůli nenažranosti regulárních výrazů)
preg_replace("/(.*)`(.*)`(.*)/Ui", "\\2", $query, 1);
Jack Finger
Profil
nightfish
no jo, ale s modifikátorem U mi to vypíše:
table WHERE `url` = 'url'

...?
nightfish
Profil
hmm, vidíš
a čeho vlastně chceš dosáhnout?
Jack Finger
Profil
nightfish
aha, asi jsem to jasně nepopsal :oP
potřeboval bych, aby mi to vypsalo jen "table".
nightfish
Profil
v tom případě netřeba nahrazování, tohle vypíše první řetězec uzavřených do "zpětných apostrofů"
if (preg_match("/`(.*)`/U", $query, $result)) echo $result[1];
Jack Finger
Profil
nightgish
no nevím.. tak ještě jinak:
mám třídu MySQL, kde mám funkci query, která vykonává SQL příkaz. Potřeboval bych aby se do:
$sql->query("DELETE FROM `table` WHERE ...");

automaticky přidal TABLE_PREFIX
$sql->query("DELETE FROM `" . TABLE_PREFIX .  "table` WHERE ...");
nightfish
Profil
<?php
Define("TABLE_PREFIX", "prefix");
$q = "DELETE FROM `table` WHERE `sloupec` = 'neco'";
echo preg_replace("/(.*)`(.*)`(.*)/U", "\\1`".TABLE_PREFIX."\\2`\\3", $q, 1);
?>
Jack Finger
Profil
díky, funguje :o)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0