2016-06-20 45 views
1

我想在XML中存儲sql查詢,並通過php來執行它。如何在PHP中的字符串內部分配變量?

問題是,我需要從XML中的字符串內分配變量,但我不知道如何做到這一點。

這裏是例子。

XML

<data> 
    <test> select * from table where testdata = $testdata; 
    </test> 
</data> 

PHP

$xml_string = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/data.xml'); 
$xml = simplexml_load_string($xml_string); 

$sql = $xml->test; 

//here is the problem. variable $testdata is not recognized in the string 
$testdata = "test"; 

$result = $this->conn->query($sql); 

$data = $result->fetch_assoc(); 

任何人都可以讓我知道如何解決這個問題呢?我也打開新的建議來存儲或處理sql查詢謝謝。

+1

$ TESTDATA = 「測試」;使用報價 – AkshayP

+0

@AkshayP修復它。謝謝:) – Daniel

回答

0

試試這個:

<data> 
    <test> select * from table where testdata = '%s'; 
    </test> 
</data> 

然後:

$result = $this->conn->query(sprintf($sql, 'test'));  
$data = $result->fetch_assoc(); 
+0

它的作品謝謝!但我擔心如果字符串內有幾個變量,那麼它一定會令人困惑。 – Daniel

+0

完全沒有,請查看'sprintf'函數doc [http://php.net/manual/en/function.sprintf.php](http://php.net/manual/en/function.sprintf .PHP)。 –

相關問題