2010-12-03 13 views
0

私は、私がPythonでさまざまな数のカラムを持つMySQLテーブルにどのように挿入できますか?

sql = "INSERT INTO table (searchindex,asin,title,browsenode, salesrank, brand, listprice, saleprice) VALUES ('%s','%s','%s','%s', '%s', '%s', '%f', '%f')" % row_data 

を使用しているデータベースに挿入するために、NULLかもしれない変数row_data = (searchindex, asin, title, browsenode, salesrank, brand, listprice, saleprice)及びこれらの要素のいずれかを持っている。しかし、私はrow_dataに複数のフィールドを追加すると、それは非常にスケーラブルではありません。これを行うより効率的な方法はありますか?

ありがとう

+0

「row_dataにフィールドを追加するとスケーラビリティが向上しません」本当に?どのくらいの頻度でスキーマを変更しますか?数秒ごとに?または1ヶ月に1回? –

+0

すべての%sと%fで読むのは難しいので、開発するのは難しいです。 – Shamoon

+0

最初に文字列置換を使わないでください。次に、ORMを取得します。 –

答えて

3

非常に安全でないため、文字列補間を使用してSQLを構築しないでください。 MySQLライブラリの適切な機能を使用して、値をパラメータとしてクエリに渡します。

テーブルの列数は、プログラムの開発に合わせてほとんど変化しません。おそらく数ヶ月に1回、あなたのSQLを更新することはめったにありません。

また、SQLAlchemyのようなシステムを使用して、これを多く処理し、自分で多くのSQLを書く必要がなくなります。

+0

MySQLdの機能は何ですか? – Shamoon

+0

+1:ORMを取得します。生のSQLの使用をやめてください。 –

関連する問題