ugrás a tartalomhoz

konstansok behelyettesitése

Anonymous · 2006. Ápr. 25. (K), 09.43
sziasztok!

sql lekédezéseket gyártok dinamikusan. minden lekérdezés egy string, amelybe kulonbozo változók és állandók értékeit helyettesíti a szkriptem.
azt a módszert szeretném használni, hogy a behelyettesítendőket kapcsoszárójelek közé helyezem.

2 kérdés merült fel bennem:
- hogyan lehet megtenni ezt állandókkal, mert bizony erre is szükségem lenne
- meg lehet e csinálni hogy behelyettesitéskor még valami muveletet végezzek a változón, lsd a példában amikor értéket növelek.

itt van a hibás kód. remélem látszik mit szeretnék (CATEGORIESTBL az ominózus konstans):

$sqlQuery="INSERT INTO {CATEGORIESTBL} SET lft={$nodeFields['rgtid']+1}, rgt={$nodeFields['rgtid']+2};";
így működne, de a többi lekérdezés nem ebben a stílusban fogant és szeretném egységesen intézni:

$sqlQuery='INSERT INTO '.CATEGORIESTBL.' SET lft='.$nodeFields['rgtid']+1}.', rgt='.$nodeFields['rgtid']+2.'";';
köszi szépen
 
1

Adatbázis absztrakció

Poetro · 2006. Ápr. 25. (K), 10.00
Használj valami adatbázis absztrakciós réteget, ami minden ilyen behelyettesítést megcsinál helyetted. Ajánlom az adodb-t, illetve több PEAR csomag is foglalkozik ezzel. Ilyenek a következők:
2

str_replace

janoszen · 2006. Ápr. 25. (K), 10.58
A sufnituning megoldás az str_replace függvény használata a konstansra. :D
3

sprintf

Anonymous · 2006. Ápr. 25. (K), 11.24
ha jól értem egy sztringbe szeretnél adatot vagy művelet eredményt beírni. próbáld ki az sprintf függvényt. a működését úgy tudnám leírni, hogy kihagysz egy részt, amt később gyakorlatilag bármvel (változó, konstans értékkel, ezekkel végzett műveletek eredményeivel) kitölthetsz.

esetedben ez hasonlót jelentene:

<?php
$sqlQuery=sprintf('INSERT INTO %s SET lft=%d, rgt=%d',CATEGORIESTBL,$nodeFields['rgtid']+1,$nodeFields['rgtid']+2);
?>
gex