Python / mySQL:ProgrammingError:并非所有参数都在SQL语句中使用

时间:2018-01-31 06:25:16

标签: python mysql mysql-connector-python

我正在使用mysql 5.7.21,Connector / Python 2.0.4,Python 3.6.3

我在我的python脚本中定义了一个表,

try 
{
     JSONArray jsonArray = new JSONArray("Your jsonString");

        for (int i = 0; i < jsonArray.length(); i++) {

            JSONArray jsonArray1 = jsonArray.getJSONArray(i);

            for (int j = 0; j < jsonArray1.length(); j++) {

                Log.i(" ROW " + i + " Col " + j, ": " + jsonArray1.get(j));
            }

        }
}
catch (JSONException e) 
{
    e.printStackTrace();
}

并在db中成功创建了它。

但是,当我尝试插入以下数据时

TABLES['report'] = (
    "CREATE TABLE `report` ("
    "  `t` varchar(4) NOT NULL,"
    "  `s` varchar(50) NOT NULL,"
    "  `d` varchar(10) NOT NULL,"
    "  `v` int(12) NOT NULL,"
    "  `g` varchar(12) NOT NULL,"
    "  `q` varchar(12) NOT NULL,"
    "  PRIMARY KEY (`t`)"   
    ") ENGINE=InnoDB")

进入表格

data= ('1111', 'xxxxxxxxxx-cc', 'AsOf20170630', '81785000', 'xxxx-cc', '2017Q2')

我收到了错误,

cursor.execute("INSERT INTO report (t, s, d, v, g, q) VALUES (%s, %s, %s, %s, %s, $s)", data)

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

values $s上次%s更改为'81785000' 如果这不起作用,你可以尝试改变
81785000int,因为v为{{1}}

答案 1 :(得分:0)

试试这个:

cursor.execute(&#34; INSERT INTO报告(t,s,d,v,g,q)VALUES(%s,%s,%s,%s,%s,%s < / strong>)&#34;,数据)

最后的$ s应该替换为%s

在python $ s中,我认为处理字符串无效,因为您运行的查询是字符串。