Ukladání dat z XML do DB, vytvoří se špatný dotaz
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Tom_as
- Člen | 28
Zdravím,
nevím jestli dělám něco blbě já nebo je to chyba jinde ale snažím se uložit XML data do DB.
$getTransactionsList = $this->getPage("https://www.fio.cz/ib_api/rest/periods/".TOKEN."/2013-09-29/2013-09-30/transactions.xml");
$getTransactionsList = trim($getTransactionsList);
$xml = new SimpleXMLElement($getTransactionsList);
foreach ($xml->TransactionList->Transaction as $key => $val) {
if($val->column_5 != ""){
$this->context->TransactionsModel->saveTransaction($val);
}
}
Takto se ptám na XML a vkládám ho do Modelu.
V modelu mám pak tohle:
return $this->database->exec("INSERT INTO `".DB_PREFIX."__transactions` ?", array(
"price" => $value->column_1,
"customerNameAccount" => $value->column_10,
"customerBankAccount" => $value->column_2,
"customerCodeBank" => $value->column_3,
"constantSymbol" => $value->column_4,
"variableSymbol" => $value->column_5,
"specificallySymbol" => $value->column_6,
"paired" => "0",
));
V proměné $value jsou data a když dám echo na určitou proměnou vypíše se.
A výsledná chyba hlásí tohle:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')), (()), (()), (()), (()), (()), (()), '0')' at line 1
a vytvoří to tento dotaz:
INSERT INTO `fn__transactions` (`price`, `customerNameAccount`, `customerBankAccount`,
`customerCodeBank`, `constantSymbol`, `variableSymbol`, `specificallySymbol`, `paired`)
VALUES ((()), (()), (()), (()), (()), (()), (()), '0')
PHP 5.4.4 | Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.4.4 mod_perl/2.0.4 Perl/v5.10.1 | Nette Framework 2.0.11 (released on 2013–07–11)
Všem děkuji za pomoc
Tom_as