質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

987閲覧

pythonにてSQLで取得した複数件のデータをPHPへ渡す方法

tomoyuki500219

総合スコア21

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/16 15:13

編集2021/01/19 00:39

PHP側でexec()でpythonを実行する方法でpythonを実行し、python側からPHP側でデータを受け取る事はできたのですが、python側でSQLを実行し、複数件のデータをPHP側へ渡す方法が思いつかず困っています。
ご教示の程、よろしくお願いします。できればサンプルコードをいただけると大変ありがたいです。

追記
PHP(WEB環境)ではpython側のSQLを実行できないという意見も出てきました。apache からの実行では、権限が厳重に封止されているそうです。本当でしょうか…。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

流れとしては

  1. SQLを実行し、結果をJSON文字列で標準出力するPythonのコードを書く
  2. PHPからexec()でPythonを叩いて標準出力からJSONを取得する
  3. 取得したJSONをjson_decode()を使ってPHPの変数として扱えるようにする

という流れになります。
以前の質問でやり取りされている内容とあんまり変わらない気がしますが)

投稿2021/01/16 15:22

編集2021/01/16 16:11
tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomoyuki500219

2021/01/16 15:42

ご回答ありがとうございます。 JSONは使わずにprint文で受け渡ししていました。 JSON形式を作成するロジックもわからず、ご教示いただいたロジックを書くことが難しい状況です。 今はJSONを使わずに1件分のデータなら受け取れるのですが、python側で溜まった2件以上のデータをPHP側で受け取り画面に表示させてたいです。
tanat

2021/01/16 16:21

おそらく、いくつか勘違いというか理解の混同があるように思います。 JSON文字列(回答を修正しました)は、JSONの文法に沿って書かれたただの文字列です。(通常は単純にJSONと言われることが多いです。) Pythonのjsonオブジェクトは、辞書型をJSON文字列にしたり、JSON文字列を辞書型に変換したりするオブジェクトです。 ですので、詳細な流れとしては 1. PythonでSQLを発行し、取得したデータをjsonオブジェクトに格納した後、jsonオブジェクトの機能を使ってJSON文字列として標準出力する となります。 https://docs.python.org/ja/3/library/json.html を十分に確認した後、 python json 標準出力 あたりで調べてみるとイメージがつかめると思います。 異なる言語間でデータを共有する際には、何らかの共通フォーマットを経由する必要があります。 そして、JSONが最もお手軽な方法の一つなので、他の方法でやるのは確実にJSONより面倒になるのでお勧めしません。 他の方法としては、XMLやCSVと言ったデータフォーマットを、標準出力経由で文字列でやりとりしたり、ファイルでやり取りすることが考えられますが、JSONに比べると若干めんどくさいです。
tomoyuki500219

2021/01/18 02:10

返答遅く申し訳ございません。ご回答ありがとうございます。他にもやることがあるので、後程、考えてやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問