2012-08-22 67 views
0

我在包含php變量的Mysql表中有一個字段,用於確定存儲文件的目錄(例如,Docs/$CompID/Acc/$AccID/)。問題是,當我檢索值時,顯示php變量名稱而不是值。在mysql字段中使用php變量

我試圖放置引號值 -

無論在MySQL表(Docs/$CompID/"Docs/".$CompID."/

並顯示PHP變量時(echo"$dir"

我還試圖做str_replace,將{ }放在變量的周圍,以便我可以在字符串中標識它:

$start=strrpos($cat['dir'],'{'); 
$stop=strrpos($cat['dir'],'}'); 
$rep=substr($cat['dir'],$start+1,$stop-1); 
$dir=str_replace("{".$rep."}",$rep,$cat['dir']); 

所有這些只顯示php變量名稱。任何幫助,將不勝感激!

+0

是什麼'$貓[ '目錄']'是什麼樣子? –

+0

Docs/$ CompID /和Acc/$ AccID /是$ cat ['dir']中數據類型的示例。當我嘗試使用str_replace時,我將它們更改爲Docs/{$ CompID} /和Acc/{$ AccID}/... – Alan

回答

2

您可以使用eval()

$AccID = 'me'; 
eval("\$str = \"Acc/$AccID/\";"); 
echo $str; 
+0

這個工程,如果我把變量保存到另一個像這樣: $ dir = $ cat ['dir']; eval(「\ $ str = \」$ dir \「;」); echo $ str; 但不是這樣的: eval(「\ $ str = \」$ cat ['dir'] \「;」); echo $ str; 任何想法爲什麼? – Alan

+2

因爲你用引號 –

+1

'eval(「\ $ str = \」Acc/$ cat [dir]/\「;」);'工作得很好.. –

1

如果我是正確的,你的變量將如下所示:var。您可以通過$$cat["dir"]訪問$var。但是,如果您的db變量看起來像$var,則只需使用一個簡單的子字符串即可刪除$

+0

我試過了,但它只在php變量是Mysql字段中唯一的東西。當字段中包含文本和變量時,它將使用整個值作爲變量。 – Alan

+0

雖然這真的很棒!但是,我一定會記住這一點,但是,當整個Mysql字段是一個PHP變量! – Alan