Description:
# mysql -V
mysql Ver 14.14 Distrib 5.6.17, for Linux (x86_64) using EditLine wrapper
# python3 -V
Python 3.3.5
Error occurs on prepared cursor with utf-8 encoded statement param
try:
#error
self.__ads_insert.execute("INSERT INTO `ads` " \
"(`sites_id`, `id_on_site`, `url`, `date`, `phones_id`, `title`, `price_grn`, `address`, `text`, `rooms`) VALUES " \
"(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params)
ads_id = self.__ads_insert.lastrowid
except mysql.connector.errors.ProgrammingError:
self.__logger.exception("connector version: {}".format(mysql.connector.version.VERSION_TEXT))
#OK
self.__cursor.execute("INSERT INTO `ads` " \
"(`sites_id`, `id_on_site`, `url`, `date`, `phones_id`, `title`, `price_grn`, `address`, `text`, `rooms`) VALUES " \
"(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params)
2015-01-18 02:48:07 ERROR rsdb.mysql connector version: 2.0.2
Traceback (most recent call last):
File "/home/igorek/PycharmProjects/rsdb/rsdb/mysql.py", line 71, in insert_ad
"(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params)
File "/usr/lib/python3.3/site-packages/mysql/connector/cursor.py", line 1084, in execute
parameters=self._prepared['parameters'])
File "/usr/lib/python3.3/site-packages/mysql/connector/connection.py", line 1606, in cmd_stmt_execute
result = self._handle_binary_result(packet)
File "/usr/lib/python3.3/site-packages/mysql/connector/connection.py", line 1545, in _handle_binary_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1210 (HY000): Incorrect arguments to mysqld_stmt_execute
How to repeat:
CREATE TABLE IF NOT EXISTS `ads` (
`id` int(10) unsigned NOT NULL,
`sites_id` smallint(5) unsigned NOT NULL,
`id_on_site` varchar(20) CHARACTER SET utf8 NOT NULL,
`url` varchar(255) CHARACTER SET utf8 NOT NULL,
`date` datetime NOT NULL,
`phones_id` int(10) unsigned NOT NULL,
`title` varchar(255) CHARACTER SET utf8 NOT NULL,
`price_grn` int(11) NOT NULL,
`address` varchar(255) CHARACTER SET utf8 NOT NULL,
`text` mediumtext CHARACTER SET utf8 NOT NULL,
`rooms` tinyint(3) unsigned NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
import pickle
params = pickle.loads(b'\x80\x03(K\x01J[\xb0\x8e\nX`\x00\x00\x00http://kharkov.kha.olx.ua/m/obyavlenie/sdam-odnokomnatnuyu-kvartiru-IDbZbTl.html?code=fa13... 22:14:00q\x01KGXJ\x00\x00\x00\xd0\x9e\xd0\xb1\xd1\x8a\xd1\x8f\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5: \xd0\xa1\xd0\xb4\xd0\xb0\xd0\xbc \xd0\xbe\xd0\xb4\xd0\xbd\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbc\xd0\xbd\xd0\xb0\xd1\x82\xd0\xbd\xd1\x83\xd1\x8e \xd0\xba\xd0\xb2\xd0\xb0\xd1\x80\xd1\x82\xd0\xb8\xd1\x80\xd1\x83q\x02M\xac\rXY\x00\x00\x00\xd0\xa5\xd0\xb0\xd1\x80\xd1\x8c\xd0\xba\xd0\xbe\xd0\xb2 , \xd0\x94\xd0\xb7\xd0\xb5\xd1\x80\xd0\xb6\xd0\xb8\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9 , \xd0\x9f\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xbe \xd0\x9f\xd0\xbe\xd0\xbb\xd0\xb5 \xd0\xba\xd0\xb0\xd1\x84\xd0\xb5 \xd0\xa2\xd1\x80\xd0\xbe\xd1\x8f\xd0\xbd\xd0\xb4\xd0\xb0q\x03X\xfe\x00\x00\x00\xd0\xa1\xd0\xb4\xd0\xb0\xd0\xbc \xd0\xbe\xd0\xb4\xd0\xbd\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbc\xd0\xbd\xd0\xb0\xd1\x82\xd0\xbd\xd1\x83\xd1\x8e \xd0\xba\xd0\xb2\xd0\xb0\xd1\x80\xd1\x82\xd0\xb8\xd1\x80\xd1\x83 \xd0\xbd\xd0\xb0 \xd0\x9f\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xbe\xd0\xbc \xd0\x9f\xd0\xbe\xd0\xbb\xd0\xb5. \xd0\xa1\xd0\xbe\xd1\x81\xd1\x82\xd0\xbe\xd1\x8f\xd0\xbd\xd0\xb8\xd0\xb5 \xd1\x85\xd0\xbe\xd1\x80\xd0\xbe\xd1\x88\xd0\xb5\xd0\xb5. \xd0\x92\xd1\x81\xd1\x91 \xd0\xbd\xd0\xb5\xd0\xbe\xd0\xb1\xd1\x85\xd0\xbe\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xbe\xd0\xb5 \xd0\xb4\xd0\xbb\xd1\x8f \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb6\xd0\xb8\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xb5\xd1\x81\xd1\x82\xd1\x8c. \xd0\xa7\xd0\xb8\xd1\x81\xd1\x82\xd0\xbe. \xd0\xa2\xd0\xb5\xd0\xbf\xd0\xbb\xd0\xbe. \xd0\xa3\xd1\x8e\xd1\x82\xd0\xbd\xd0\xbe. \xd0\xa2\xd1\x80\xd0\xb0\xd0\xbd\xd1\x81\xd0\xbf\xd0\xbe\xd1\x80\xd1\x82 \xd1\x80\xd1\x8f\xd0\xb4\xd0\xbe\xd0\xbc.q\x04K\x01tq\x05.')
cursor = connection.cursor(prepared=True)
cursor.execute("INSERT INTO `ads` " \
"(`sites_id`, `id_on_site`, `url`, `date`, `phones_id`, `title`, `price_grn`, `address`, `text`, `rooms`) VALUES " \
"(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params)
Description: # mysql -V mysql Ver 14.14 Distrib 5.6.17, for Linux (x86_64) using EditLine wrapper # python3 -V Python 3.3.5 Error occurs on prepared cursor with utf-8 encoded statement param try: #error self.__ads_insert.execute("INSERT INTO `ads` " \ "(`sites_id`, `id_on_site`, `url`, `date`, `phones_id`, `title`, `price_grn`, `address`, `text`, `rooms`) VALUES " \ "(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params) ads_id = self.__ads_insert.lastrowid except mysql.connector.errors.ProgrammingError: self.__logger.exception("connector version: {}".format(mysql.connector.version.VERSION_TEXT)) #OK self.__cursor.execute("INSERT INTO `ads` " \ "(`sites_id`, `id_on_site`, `url`, `date`, `phones_id`, `title`, `price_grn`, `address`, `text`, `rooms`) VALUES " \ "(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params) 2015-01-18 02:48:07 ERROR rsdb.mysql connector version: 2.0.2 Traceback (most recent call last): File "/home/igorek/PycharmProjects/rsdb/rsdb/mysql.py", line 71, in insert_ad "(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params) File "/usr/lib/python3.3/site-packages/mysql/connector/cursor.py", line 1084, in execute parameters=self._prepared['parameters']) File "/usr/lib/python3.3/site-packages/mysql/connector/connection.py", line 1606, in cmd_stmt_execute result = self._handle_binary_result(packet) File "/usr/lib/python3.3/site-packages/mysql/connector/connection.py", line 1545, in _handle_binary_result raise errors.get_exception(packet) mysql.connector.errors.ProgrammingError: 1210 (HY000): Incorrect arguments to mysqld_stmt_execute How to repeat: CREATE TABLE IF NOT EXISTS `ads` ( `id` int(10) unsigned NOT NULL, `sites_id` smallint(5) unsigned NOT NULL, `id_on_site` varchar(20) CHARACTER SET utf8 NOT NULL, `url` varchar(255) CHARACTER SET utf8 NOT NULL, `date` datetime NOT NULL, `phones_id` int(10) unsigned NOT NULL, `title` varchar(255) CHARACTER SET utf8 NOT NULL, `price_grn` int(11) NOT NULL, `address` varchar(255) CHARACTER SET utf8 NOT NULL, `text` mediumtext CHARACTER SET utf8 NOT NULL, `rooms` tinyint(3) unsigned NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; import pickle params = pickle.loads(b'\x80\x03(K\x01J[\xb0\x8e\nX`\x00\x00\x00http://kharkov.kha.olx.ua/m/obyavlenie/sdam-odnokomnatnuyu-kvartiru-IDbZbTl.html?code=fa13... 22:14:00q\x01KGXJ\x00\x00\x00\xd0\x9e\xd0\xb1\xd1\x8a\xd1\x8f\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5: \xd0\xa1\xd0\xb4\xd0\xb0\xd0\xbc \xd0\xbe\xd0\xb4\xd0\xbd\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbc\xd0\xbd\xd0\xb0\xd1\x82\xd0\xbd\xd1\x83\xd1\x8e \xd0\xba\xd0\xb2\xd0\xb0\xd1\x80\xd1\x82\xd0\xb8\xd1\x80\xd1\x83q\x02M\xac\rXY\x00\x00\x00\xd0\xa5\xd0\xb0\xd1\x80\xd1\x8c\xd0\xba\xd0\xbe\xd0\xb2 , \xd0\x94\xd0\xb7\xd0\xb5\xd1\x80\xd0\xb6\xd0\xb8\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9 , \xd0\x9f\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xbe \xd0\x9f\xd0\xbe\xd0\xbb\xd0\xb5 \xd0\xba\xd0\xb0\xd1\x84\xd0\xb5 \xd0\xa2\xd1\x80\xd0\xbe\xd1\x8f\xd0\xbd\xd0\xb4\xd0\xb0q\x03X\xfe\x00\x00\x00\xd0\xa1\xd0\xb4\xd0\xb0\xd0\xbc \xd0\xbe\xd0\xb4\xd0\xbd\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbc\xd0\xbd\xd0\xb0\xd1\x82\xd0\xbd\xd1\x83\xd1\x8e \xd0\xba\xd0\xb2\xd0\xb0\xd1\x80\xd1\x82\xd0\xb8\xd1\x80\xd1\x83 \xd0\xbd\xd0\xb0 \xd0\x9f\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xbe\xd0\xbc \xd0\x9f\xd0\xbe\xd0\xbb\xd0\xb5. \xd0\xa1\xd0\xbe\xd1\x81\xd1\x82\xd0\xbe\xd1\x8f\xd0\xbd\xd0\xb8\xd0\xb5 \xd1\x85\xd0\xbe\xd1\x80\xd0\xbe\xd1\x88\xd0\xb5\xd0\xb5. \xd0\x92\xd1\x81\xd1\x91 \xd0\xbd\xd0\xb5\xd0\xbe\xd0\xb1\xd1\x85\xd0\xbe\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xbe\xd0\xb5 \xd0\xb4\xd0\xbb\xd1\x8f \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb6\xd0\xb8\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xb5\xd1\x81\xd1\x82\xd1\x8c. \xd0\xa7\xd0\xb8\xd1\x81\xd1\x82\xd0\xbe. \xd0\xa2\xd0\xb5\xd0\xbf\xd0\xbb\xd0\xbe. \xd0\xa3\xd1\x8e\xd1\x82\xd0\xbd\xd0\xbe. \xd0\xa2\xd1\x80\xd0\xb0\xd0\xbd\xd1\x81\xd0\xbf\xd0\xbe\xd1\x80\xd1\x82 \xd1\x80\xd1\x8f\xd0\xb4\xd0\xbe\xd0\xbc.q\x04K\x01tq\x05.') cursor = connection.cursor(prepared=True) cursor.execute("INSERT INTO `ads` " \ "(`sites_id`, `id_on_site`, `url`, `date`, `phones_id`, `title`, `price_grn`, `address`, `text`, `rooms`) VALUES " \ "(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", params)