从php调用时,Python mysql语句返回错误

时间:2016-07-10 19:46:44

标签: php python mysql csv exec

我有一个python脚本,它将csv作为输入并将其数据插入到数据库中。我从PHP脚本调用此脚本,我正在生成此CSV。如果我从终端调用python脚本并将csv传递给它,它可以正常工作,但如果我使用

从php调用它
exec('python bulk_metadata_ingest_dev.py '. $metadataCSV);

插入表时会抛出mysql错误。

_mysql_exceptions.ProgrammingError:(1064,'您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在\ text文本附近使用正确的语法插入"" \'在第1行')

查询抛出此错误:

cursor = db.query("insert into test_table(asset_type, attribute_id, asset_title, is_publishable, owner) values(\""+str(mediaAssetTypeDict[sample_content.media_type.lower()])+"\", \""+str(attributeId)+"\", \""+str(assetTitle)+"\", \""+str(publishAssets)+"\", \""+str(sample_content.content_owner)+"\" )")

在python中,我不知道如何处理这个问题。 提前致谢

1 个答案:

答案 0 :(得分:1)

看起来您正在使用mySQL保留字OWNER作为表中的列名而不使用反引号。尝试将您的选择更改为:

...("insert into test_table(asset_type, attribute_id, asset_title, is_publishable, `owner`")... 
                                                                                   ^     ^

在文档中查看Table 9.2以获取完整列表。