2016-06-20 43 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)。 –

相关问题