2010-08-28 38 views
0

我有函數,它是這樣的如何解析函數調用中字符串的值?

function multiple_delete($entity1,$entity2,$entity2) { 

$query = "SELECT * FROM tablename WHERE id = '4' "; 
      $result = mysql_query($query); 
      $row = mysql_fetch_array($result); 

echo $entity1; 
echo $entity2; 
echo $entity3; 

} 

和我的函數調用

multiple_delete('$row[\'pic_title\']', '$row[\'pic_brief\']', '$row[\'pic_detail\']'); 

牢記三個值,我正在通過參數是特定表的實體名稱。

現在這個函數將打印它作爲字符串ie($ row ['pic_title'],$ row ['pic_brief']',$ row ['pic_detail']),因此不會將其解析爲值希望它能做到。如果它解析爲值,那麼我將能夠從數據庫中獲取記錄。我嘗試過使用單引號,雙精度,連接運算符等的組合。有沒有什麼辦法告訴腳本不要將它解析爲字符串,而是將它視爲已聲明從數據庫中獲取值。 PHP有這個功能嗎?或者我錯了邏輯。

如果我跳過參數並在函數中聲明像這樣。

echo $row['pic_title']; 
echo $row['pic_brief']; 
echo $row['pic_detail']; 

它工作得很好。爲什麼當我嘗試使用參數幫助實現同樣的事情時,它拒絕從數據庫中獲取值,而是從函數調用返回相同的聲明字符串。

請不要告訴我,我不需要該參數,我需要它,因爲我希望它執行動態數據操作,關於不同的表和不同的表實體。而上述功能僅僅是我的問題的示範,而不是確切的功能。如果你想看看確切的功能,你可以在這裏查看。

What is wrong with my function?

謝謝

回答

1

只需通過列的名稱:通過使用他們的名字作爲

multiple_delete('pic_title', 'pic_brief', 'pic_detail'); 

然後你可以用它們來訪問該行數組中的對應值鑰匙:

function multiple_delete($entity1, $entity2, $entity3) { 
    $query = "SELECT * FROM tablename WHERE id = '4' "; 
    $result = mysql_query($query); 
    $row = mysql_fetch_array($result); 
    echo $row[$entity1]; 
    echo $row[$entity2]; 
    echo $row[$entity3]; 
} 
+0

WTF .. hehe它的工作..猜猜我一直在嘗試achi從過去的5個小時前夕。你爲我保存了一天。謝謝.. – 2010-08-28 10:04:14