tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Problém s insert pri TinyMCE

před 10 lety

branov
Člen | 18

Zdravím,

mám taký menší problém s dibi, pri vkladaní textu formátovaného v TinyMCE do databázi.
Dibi pri inserte hodí nasledovnú chybu:

Fatal error: Uncaught exception 'DibiDriverException' with message '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 'VALUES ('testovaci produktsk', '<p><span style=\\\"font-family: &quot;Book Antiq' at line 1' in /home/freesh.sk/snowboard/dibi/drivers/mysql.php:173 Stack trace: #0 /home/snowboard/dibi/libs/DibiConnection.php(341): DibiMySqlDriver->query('INSERT INTO `pr...') #1 /home/snowboard/dibi/libs/DibiConnection.php(255): DibiConnection->nativeQuery('INSERT INTO `pr...') #2 /home/snowboard/dibi/dibi.php(295): DibiConnection->query(Array) #3 /home/snowboard/admin.php(145): dibi::query('INSERT INTO [pr...', Array) #4 {main} SQL: INSERT INTO `produkty` VALUES (`nazov`, `popis`, `cislo`) VALUES ('testovaci produktsk', '<p><span style=\\\"font-family: &quot;Book Antiqua&quot;, &quot;palatino&quot;;\\\"><span style=\\\"font-size: large;\\\">&uacute;&scaron;ka textu aj</span></span> <strong>s forma in /home/snowboard/dibi/drivers/mysql.php on line 173

Prosím, neviete mi poradiť ako to fixnúť? AKo som si všimol, dibi ošetruje vstupy do db proti html znakom, takže neviem, či nebude problém práve v tom.

Vďaka.

před 10 lety

Tomik
Nette Evangelist | 489

Ukaž kód.

před 10 lety

branov
Člen | 18

Veľmi jednoduchý:

<?php
$values = array(
                  'nazov' => $nazov,
                  'popis' => $popis,
                  'cislo' => $cislo_produktu);

              $insert = dibi::query('INSERT INTO [produkty] VALUES ',$values);
?>

Premenna $popis obsahuje text sformatovani cez TinyMCE ( $_POST[‚popis‘] ).

TinyMCE je volany takto:

 <script type="text/javascript" src="./include/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
    // Default skin
    tinyMCE.init({

        mode : "exact",
        elements : "elm1",
        theme : "advanced",
        skin : "o2k7",
        skin_variant : "blue",
        plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups",

        // Theme options
        theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview",
        theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,|,ltr,rtl,|,fullscreen,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,nonbreaking,forecolor",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : false,

        // Example content CSS (should be your site CSS)
        content_css : "css/content.css",

        // Drop lists for link/image/media/template dialogs
        template_external_list_url : "lists/template_list.js",
        external_link_list_url : "lists/link_list.js",
        external_image_list_url : "lists/image_list.js",
        media_external_list_url : "lists/media_list.js",

        // Replace values for the template plugin
        template_replace_values : {
            username : "Some User",
            staffid : "991234"
        }
    });
</script>

před 10 lety

branov
Člen | 18

nikto nic? :-(

před 10 lety

Ola
Člen | 389

Chyba je v tom dibi::query – musíš tam mít jen

<?php
dibi::query("INSERT INTO [table]", $values);
?>

Tím pádem Ti to zdvojilo VALUES a už to křičelo :)

Editoval Ola (29. 11. 2009 9:13)

před 10 lety

branov
Člen | 18

ajéje :-) vďaka… fakt som bol asi slepý keď som si to nevšimol :-)

Ďakujem.