問題タブ [mysql-python]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonでmysqldbを適切に使用する方法
私はPythonのmysqldbの使い方を理解しようとしています。現在の既知の知識で仕事をすることはできますが、ベストプラクティスを使用したいと思います。
カーソルを正しく閉じる必要がありますか?プログラムを終了しても、プログラムは自動的に終了しませんか?(とにかくオブジェクトデストラクタがそれを行うことを期待すべきではありませんか?)
クエリごとに新しいカーソルを作成する必要がありますか、それとも同じDB内の複数の異なるクエリに1つのカーソルで十分ですか?
python - MySQLdb - 単純なステートメントのエラー
このステートメントはエラーであり、その理由を理解できないようです。何かご意見は?テーブル media_files btw には、ID と DATA の 2 つの列しかなく、それぞれが VARCHAR(255) です。
ありがとうトレント
python - Python MySQLdb の一意のレコード、エラーを無視
配列からデータベースにレコードを挿入しようとしています:
問題は、フィールド email を一意にしたいので、DB で有効にしたことです。挿入を開始すると、エントリ値が重複しているというエラーが発生します。
「重複エラーがスローされた場合は、配列内の次の文字列に移動してください」と言う方法はありますか?
python - MySqlDb インストール エラー: Python 2.6; Mac OS 10.6、XAMPP インストール済み
私は最近、Mac の世界に移行しました。そして、Django アプリを起動して実行しようとしています。しかし、MySQLDb コネクタのインストールに苦労しています。私は XAMPP を使用することを好むため、MySql/Apache インストールの個別のコピーを持っていません。次のコマンドを実行して、MacPorts を使用して MySqlDb をインストールしました。
何の問題もなく取り付けられました。しかし、Django アプリ (MySql データベースを含む settings.py を使用) を実行しようとすると、次のエラーが発生します。
どんな助けでも大歓迎です!:)
python - Python:フォーマットを使用してデータベースに行を挿入する
データベースに設定したテーブルに行を挿入しようとしています。
私のコード:
「[]」の内容が気に入らないというエラーが表示されます。
「%s」がどのように機能するのか完全には理解していません。私は多くの例を試しましたが、すべて失敗しました。
この例はhttp://mysql-python.sourceforge.net/MySQLdb.htmlから入手しました
python - virtualenv を作成すると、OSX で既に 32 ビットに設定されている場合でも、python は 64 ビットで実行されます
私のセットアップは次のとおりです:2.6.1 python(アップルのデフォルト、ユキヒョウ)、virtualenv、およびvirtualenvwrapperの使用
環境の外では、すべてが 32 ビットで実行されますが、問題ありません。しかし、新しいプロジェクトでは、必要な django 1.3 と大量の依存関係に取り組むつもりなので、virtualenv を作成しました。
mysql-python (pip 経由) が「mach -o wrong architecture」というエラーを受け取ることを除いて、すべてをうまくインストールできました。virtualenv内で「import sys; sys.maxint」を使用してpythonインタープリターをチェックしましたが、pythonは64ビットで実行されます。
「defaults write com.apple.versioner.python Prefer-32-Bit -bool yes」を介して、Pythonが32ビットで実行されるようにシステム全体を設定しました
なぜこれがvirtualenv内で起こるのか誰か知っていますか?
python - Python、MySQLdb、およびテーブル名のエスケープ?
明らかな何かが欠けている可能性がありますが、MySQLdb のオンライン ドキュメントにあるさまざまな例と私のコードがどのように異なるのかわかりません。
私はPythonのプログラミングにかなり慣れていませんが、perlの経験が豊富です。私がやろうとしていることは、早い段階で特定の良い習慣を身につけることです (perl のように、私は常に「厳格な使用; 警告を使用する」から始めます)。そのため、再利用可能な関数を独立したファイル ( funct.py) を使用して、後で時間を節約できます。
テーブルからランダムな行を選択するための次の関数があります。
次のように呼び出されます。
残念ながら、次のエラーが発生します: _mysql_exceptions.ProgrammingError: (1064, "SQL 構文にエラーがあります。1 行目の ''testtable'' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください")
実行行の %s の代わりに testtable を配置すると、クエリは実行されますが、実行されているように見えます
もちろん「id」を返します。
これらの両方を考えると、実行しようとすると %s エントリを引用しているように見えます。それをやめる方法、または私が達成しようとしていることを実際にどのように行うべきかを誰かが説明できるかどうか疑問に思っていましたか? 関数をできるだけ汎用的にしたいので、呼び出されたときに渡されるデータに依存しています。
編集: ? に置き換えると、追加する必要があります マーク:
python - MySQLクエリでデータベース名をパラメータ化する安全な方法はありますか?
私は、私の個人的なプロジェクトの mysql データベースと関連するアカウントの作成を自動化するのに役立つ小さな python スクリプトを書いています。このスクリプトの一部は、データベース名を文字列として受け取り、データベースを作成する関数です。
次のように、 MySQL の CREATE DATABASEが引用符で囲まれていないデータベースの名前を要求するため、これは機能しません。
しかし、ユーザーが提供したデータベース名をクエリに安全に挿入しようとする私のコードは次を作成します:
そして、「テストに近い MySQL 構文に問題があります」というメッセージが表示されます。
これは個人的な使用のためのものですが、ユーザーが提供した文字列をあらゆる種類のクエリに直接挿入したくありません。それは私の宗教に反しています。ユーザーが指定したデータベース名を python (または任意の言語) の mySQL クエリに挿入して、ユーザー入力test_db; DROP some_other_db;
が拒否または正しくエスケープされることを確認する安全な方法はありますか?
python - Python用のMySQLdbを使用するときにオプションskip-name-resolveを使用するにはどうすればよいですか?
仮想マシンからドメイン内のデータベースに接続しようとしています。XPでは動作しますが、Win7では動作せず、「OperationalError:(1042、 "アドレスのホスト名を取得できません")」で終了します。
今、ファイアウォールなどを無効にしてみましたが、それはとにかく問題ではありません。DNSを解決する必要はありません。DNSを解決すると、すべてが遅くなるだけです。したがって、オプション「skip-name-resolve」を使用したいのですが、Python用のMySQLdbを使用する場合はmy.iniまたはmy.cnfがないので、このオプションを引き続き使用するにはどうすればよいですか?
あなたの助けをありがとう-アレックス
python - pythons mysqldb を使用して mysql insert を実行できません
これは、stackoverflow に関する私の最初の質問です! 私は現在、Steam プロファイルをクロールし、所有しているゲーム、Steam 名、友達などを保存する Steam コミュニティ クローラーをプログラミングしていますが、insert コマンドを実行しようとしても何もしません。
プログラムは「挿入」を表示しますが、実行コマンドは例外をスローせず、データベースに何かを挿入しません。さらに、最終的に発生する例外はキャッチされません。たとえば、クエリを「INSERT INTO games (useridd)」に変更すると、プログラムが終了し、例外が表示されます。
アプリケーションはマルチスレッドですが、実行前に取得されるため、問題は見られません。