SQL 简单到荒谬的语法错误 sql?
SQL syntax error in absurdly simple sql?
通话中:
INSERT IGNORE INTO standard_group (group_name, subject, grade, country, state) VALUES (%(group_name), %(subject), %(grade), %(country), %(state));
与
('Arizona Social Studies Standards', 'Social Studies', '1', 'United States', 'AZ')
例如:
print group_columns
print group_sql
print group
cur.execute(group_sql, dict(zip(group_columns, group)))
但我总是得到:
['group_name', 'subject', 'standard_category', 'standard_sub_category', 'standard_name', 'standard_description', 'grade', 'country', 'state', 'is_common_core', 'is_state_standard']
INSERT IGNORE INTO standard_group (group_name, subject, grade, country, state) VALUES (%(group_name), %(subject), %(grade), %(country), %(state));
('Arizona Social Studies Standards', 'Social Studies', '1', 'United States', 'AZ')
Traceback (most recent call last):
File "standards-import/simport.py", line 167, in <module>
cur.execute(group_sql, dict(zip(group_columns, group)))
File "/Library/Python/2.7/site-packages/mysql/connector/cursor.py", line 507, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 722, in cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 640, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '%(group_name), %(subject), %(grade), %(country), %(state))' at line 1
我已经尝试使用命名参数 ?
和 %s
,并得到
- 未使用所有参数
- 命名参数的参数数量错误
- SQL语法
这是怎么回事??我错过了什么???
看起来像是一个小错字。您忘记将 s
添加到参数
INSERT IGNORE INTO standard_group (group_name, subject, grade, country, state) VALUES (%(group_name)s, %(subject)s, %(grade)s, %(country)s, %(state)s);
相关代码在这里:
通话中:
INSERT IGNORE INTO standard_group (group_name, subject, grade, country, state) VALUES (%(group_name), %(subject), %(grade), %(country), %(state));
与
('Arizona Social Studies Standards', 'Social Studies', '1', 'United States', 'AZ')
例如:
print group_columns
print group_sql
print group
cur.execute(group_sql, dict(zip(group_columns, group)))
但我总是得到:
['group_name', 'subject', 'standard_category', 'standard_sub_category', 'standard_name', 'standard_description', 'grade', 'country', 'state', 'is_common_core', 'is_state_standard']
INSERT IGNORE INTO standard_group (group_name, subject, grade, country, state) VALUES (%(group_name), %(subject), %(grade), %(country), %(state));
('Arizona Social Studies Standards', 'Social Studies', '1', 'United States', 'AZ')
Traceback (most recent call last):
File "standards-import/simport.py", line 167, in <module>
cur.execute(group_sql, dict(zip(group_columns, group)))
File "/Library/Python/2.7/site-packages/mysql/connector/cursor.py", line 507, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 722, in cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 640, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '%(group_name), %(subject), %(grade), %(country), %(state))' at line 1
我已经尝试使用命名参数 ?
和 %s
,并得到
- 未使用所有参数
- 命名参数的参数数量错误
- SQL语法
这是怎么回事??我错过了什么???
看起来像是一个小错字。您忘记将 s
添加到参数
INSERT IGNORE INTO standard_group (group_name, subject, grade, country, state) VALUES (%(group_name)s, %(subject)s, %(grade)s, %(country)s, %(state)s);
相关代码在这里: