db->query() Syntaxe chyba

mimacala
Člen | 113
+
0
-

Ahoj,
postupoval jsem dle návodu, ale nette mi hodilo chybu.

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 'TABLE '1_reklamace' RENAME TO '0_reklamace'' at line 1

a tracy mi ukázala toto

ERROR
TABLE '1_reklamace' RENAME TO '0_reklamace'
  function ZmenTabulku($noveic)
   {
             /////////Změní název tabulky pro vytvoření reklamace////////////


          $nova = $noveic . "_reklamace";
          $stara = $this->ZjistiTabulku();
          $zmenatabulky = $this->db->query('TABLE ? RENAME TO ?', $stara,$nova); // na tomto řádku je chyba
        //////////////////////////////////////////////////////////////////////
   }

Kód se zdá v pořádku nesetkla se nikdo s tím ?
Děkuji

MajklNajt
Člen | 470
+
+2
-

Už ti to tu raz niekto písal, naštuduj si základy SQL…

Query musí byť ALTER TABLE...

mimacala
Člen | 113
+
0
-

Ano vím, ale zkušel jsem jsem i

 $zmenatabulky = $this->db->query('ALTER TABLE ? RENAME TO ?', $stara,$nova);

ale stále chyba :)

Marek Bartoš
Nette Blogger | 1146
+
+5
-

Jen to asi byla jiná chyba, že? :)

Nejdřív by sis měl zjistit, jak to SQL vypadá správně a zda ho dovedeš vůbec sestavit sám, bez pomoci databázové vrstvy. Teprve potom zjišťovat, proč ti jej databázová vrstva nesestaví správně. Bez znalosti SQL a s náhodným zkoušením, zda ALTER TABLE bude fungovat bez ALTER se dál nepohneš.

Kamil Valenta
Člen | 752
+
0
-

A aby to mělo rychlejší tah na branku, tak snad jen nekombinovat dva druhy dotazů :)
https://dev.mysql.com/…e-table.html

fikusir
Člen | 25
+
-4
-

Dej to query do dvojitých uvozovek, v chybě to vypadá, že zde by mohla být kámen úrazu