我正在尝试在我的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 编码。