如何使用PDO将html,特殊章程插入到sql数据库中


How to Insert html, special charters to a sql database with PDO?

我正在尝试在我的MySql MyIsam表中插入一些html特殊字符

使用的查询:

INSERT INTO place_menu (menu_ref_place, menu_name, menu_price, menu_card_price, menu_full_price, menu_desc) VALUES ('1', 'SUPPLÌ CASERECCI x3', '', '', '', 'asdasd') 

返回错误:

 SQLSTATE[42000]: Syntax error or access violation

注意:

此请求与 mysqli 完美配合,但使用 pdo 时插入被截断为SUPPLÌ

另一个问题是我插入 html 标签和引号的地方,例如,如果我尝试插入这个字符串"$%&'''12'''12'''3'''12'''3123",我什么也得不到......只是空白:/

另一个调试信息:

 INSERT INTO place_menu (menu_ref_place, menu_name, menu_price, menu_card_price, menu_full_price, menu_desc) VALUES ('1', 'adasd'asdasd', '2', '3.80', '400', 'asdasda sasdasda s0d8aèsdaysd8sd8asdèa0sd8yè0=?£!(/'"=)(!?)('"?!)'"')
    Fatal error: Uncaught exception 'PDOException' with message '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 'asdasd', '2', '3.80', '400', '<b>asdasda s</b>asdasda s0d8a?sdaysd8sd8asd?a0sd8y' at line 1' in /home/contat13/public_html/app/menu/app/inc/db.cl.php:36 Stack trace: #0 /home/contat13/public_html/app/menu/app/inc/db.cl.php(36): PDO->query('INSERT INTO pla...') 
#1 /home/contat13/public_html/app/menu/app/inc/db.cl.php(146): DB->sql_query('INSERT INTO pla...') 
#2 /home/contat13/public_html/app/menu/insert_dish.php(15): DB->insert('place_menu', Array, false) 
#3 {main} thrown in /home/contat13/public_html/app/menu/app/inc/db.cl.php on line 36

使用的 php 类:

HTML

的问题。我发现表单不是 UTF-8 编码的。解决方案是检查相同的编码:

1) the page/form
2) table and column (if any) charset (not collation) 
3) db connection. 

所有 3 个都必须具有 utf-8 编码。