2016-06-20 3 views
1

Я хочу сохранить sql-запрос в XML и выполнить его по 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). –

Смежные вопросы