Zpracování SQL dotazu z textarea
- James
- Člen | 54
Ahoj,
do formulářového prvku textarea vkládám text, jedná se o SQL dotaz. Po odeslání formuláře potřebuji vykonat SQL dotaz nad připojenou databází. Pokud mám pouze jednořádkový dotaz, vše proběhne v pořádku, ale pokud mám dotaz na více řádků, tak mi to hází chybu. Myslím si, že bude chyba někde v escapování vkládaného textu do textarea prvku. Takže kdyby někdo věděl jak správně escapovat text reprezentující SQL dotaz, budu rád za každou radu.
Továrnička na vytvoření komponenty:
public function createComponentSqlForm()
{
$form = new Form();
$form->addTextArea('sql', 'SQL příkaz:');
$form->addSubmit('submit', 'Provést');
$form->onSuccess[] = $this->sqlCommandFormSucceeded;
return $form;
}
Zpracování formuláře:
public function sqlCommandFormSucceeded($form)
{
$values = $form->getValues();
$sql = $values->sql;
$this->sqlCommand = Nette\Database\Helpers::dumpSql($sql);
$this->sqlResult = $this->connection->executeSql($sql);
Nette\Database\Helpers::dumpResult($this->sqlResult);
}
Model:
public function executeSql($sql)
{
return $this->db->query($sql);
}
Potom mám ještě jeden dotaz, jestli zle nějak výstup z Nette\Database\Helpers::dumpResult()
modifikovat ku obrazu svému a vykreslit tam, kde budu já chtít a nebo to
funguje pouze pro ladící účely a podobně jako
dump()
, protože by se mi hodilo, kdyby šel tento
výstup vložit do šablony a potom třeba nějak nastylovat.
Předem děkuji za rady.
- James
- Člen | 54
honos napsal(a):
Když ti to vyhazuje chybu tak je dobré uvest o jakou chybu se jedna. Jedna se o vice řadkovy dotaz nebo o vice dotazu na vice radcich? Hazis jablka a ocekavas palenku, co takhle jeste pridat cukr. Jakou chybu ti to hazi?
Už se mi to podařilo vyřešit. I přes to děkuji za ochotu.