• ベストアンサー

Mysqlにデータを入れる方法が知りたい

テーブル接続→テーブル作成(必要か不明)→RSSをまとめる→RSSを取得→RSSをテーブルに入れる→RSSを表示するをPHPで作成しているのですが、RSSをテーブルに入れる段階でつまずいています。 テーブルに入れる方法を調べたところIncsert文が出てきたのですが、それ以外の方法を勉強の為に知りたいです。 その他の構文で取得データをMy SQLに入れる方法はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

mysqladminからcsv形式でインポートしてみてはどうですか? https://algorithm.joho.info/programming/sql-db/load-csv-xampp-phpmyadmin/

php_learn
質問者

補足

csvで作成する方法とphpでデータベースに接続する方法両方できますね…

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5123/13381)
回答No.1

SQL文でデータを入れる場合は INSERT 以外にありません。 自分でSQL文を書かずにDB操作をしたいのであれば CakePHP の ORM などを使ってDBを抽象化してデータの出し入れをする必要があります。 CakePHP 以外でもいくつかのフレームワークで抽象度の高い ORM を持っているモノがありますし、ORM のライブラリもいくつか存在するので質問者さんが使いやすいモノを導入されればいいかと思います。

php_learn
質問者

補足

外部ライブラリはレンタルサーバーの仕様上扱えないのでinsert でコードを組んでみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MySQLの不可解なエラー

    お世話になります。 PHP4.3.7で、MySQL3.23.56を使ったアプリケーションを作っておりますが、ある決まった場所にてSQLエラーが発生し、さらにエラー発生の何度かに一度、MySQLサーバーが停止してしまいます。 ここで、SQL構文に間違いがあるのでしたら、話は早いのですが、phpMyAdminから同じSQLを流しても問題なく実行されますし、何より、毎回エラーになるわけでもないのです。 INNER JOIN、LEFT JOIN で4テーブルほど結合していましたが、エラーが気になったため、結合をやめ、3つのマスタテーブルをそれぞれ取得し、連想配列を使って主テーブルのデータとPHPで連結してみました。 が、結局、この機能のところでは、数回に一回、エラーを出してしまいます。 こういった現象は何が原因と考えられますか? SQLを変更しても同じ現象が出るため、ここにSQL文を記述しても参考になるとは思いませんが、念のため掲載しておきます。 $SQL =<<<_SQL_ SELECT clm1, clm2, clm3, clm4, clm5, clm6, clm7, clm8 FROM TABLE1 ORDER BY clm1 LIMIT 0,50 _SQL_ $res = mysql_quert($SQL); とし、$resが取得できない場合にそのSQLのログをとりました。(このSQL文の結果が0件になることは皆無です) 全く何の変哲もない基本的なSQL文に変更したので、これが原因とはとても考えられません。 TABLE1 は、かなりの頻度でUPDATEがかかる、アプリケーションの主になるテーブルで、ユーザー情報を保持しています。トランザクション制御を行うので、BerkeleyDB です。 もしかして、トランザクションの頻度が問題なのでしょうか? しかし、それによって結果の取得に失敗するだけなら、エラー表示等でやり直すように促せばいいのですが、それによってしばしばデータベース停止になるのでは、話になりません。 ご意見・ご指導の程よろしくお願いいたします。

  • SQL内でのデータコピー

    おはようございます! 今私が扱っているSQLデータであるコラムデータを違うコラムに移行したいのですがその方法が分かりません。 このSQLデータは「顧客」テーブルと言うものがあり、 「顧客」テーブルの「コメント」と言うコラム内データを「ノート」というコラムに移動したいです。 「顧客ID」があるので 「顧客ID」が同じという条件で 「顧客」テーブルの「コメント」内データを、「顧客」テーブルの「ノート」内に移動する 為にはどう言った構文を作成すればよろしいのでしょうか? かなり切羽詰まっているので宜しくお願いします!

  • データの逐次出力?

    PHPを勉強しはじめてまだ3週間ぐらいです。 使用しているのはphp 4.3.10です。 どうぞよろしくお願いいたします。 現在、あるサイトのデータを取得して、データベースに情報を 登録しています。 データの登録が完了してから、1つのテーブルとして、出力しているのですが、できれば、データを取得すると同時にhtml出力したいのですが そのようなことは可能なのでしょうか? たとえば、 A:100 B:200 C:300 D:400 というデータを取得して、sqlに登録後、ループでまわして テーブルに出力するのではなく、 A:100 を取得した段階で、htmlに出力し、画面にその表示をしたいのです。 じょじょに、データが描画されていくかんじ? を想定しております。 お手数ですが、お詳しい方の助言をいただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MySQLでもPHPでも出来る処理はどっちでやる?

    「MySQL」「PHP」、何れでも出来るような処理はどちらでやる方が良いのでしょうか? ■例1 … 取得データを正規表現で加工して利用したい場合 ・SQL重視 … 正規表現等を駆使したSQLで、後々利用しやすい形で取得 ・PHP重視 … 普通に取得して、PHPで正規表現を利用して加工 ■例2 … データ取得がヤヤコシイ場合 ・SQL重視 … (例えそれがどんなに長くなっても)SQL文をキチンと組み立て、一度にデータ取得 ・PHP重視 … 簡単なSQL文で一旦データ取得後、PHPのループ文内等処理で、再度DBアクセスしデータ取得 ・ちょっと例えが微妙かもしれないのですが、そもそもデータ取得する際、どのように考えるのが正しいのでしょうか? 1.なるべく利用予定に近い形でデータを取得 2.後で色々加工するかもしれないので、取得時点ではあまり加工せず、そのまま取得 ※要は、頻繁にDBへアクセスしてデータ取得するより、「DBへアクセスするのは極力避け、取得したデータはなるべく使い回す」方が良いのでしょうか? ・それとも、ここら辺はケースbyケースなので、一概には言えないのでしょうか? ・あるいは、別にどっちでもいい? あまり、気にしなくても良い?

    • ベストアンサー
    • MySQL
  • RSSをMYSQLに入れる最適なコードがわからない

    テーブル接続→テーブル作成(必要か不明)→RSSをまとめる→RSSを取得→RSSをテーブルに入れる→RSSを表示をPHPで作成しているのですが、 RSSをテーブルに入れる最適なコードがわからず困っております。 insertを使用してRSSをテーブルに入れたいのですが、INSERT INTOはphpにいきなり書いてもエラーにならないのでしょうか?$を使用するほうの記載のほうが正しいのでしょうか? <?php require_once(dirname(dirname(dirname(dirname( __FILE__ )))) . '/wp-load.php' ); //ファイルの先頭で読み込む try { $dsn = 'mysql:dbname=ozvutmpq_wp1;host=localhost'; $user = 'ozvutmpq_wp1'; $password = 'Rn_&Zi$gWKae'; $dbh = new PDO($dsn,$user,$pass); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//エラーが発生した時に、例外を投げる echo "データベースへの接続が出来ました"; }catch (PDOException $e) { echo $e->getMessage();// err時はメッセージを表示 exit; } //RSSをまとめる $url1 = [ 'http://', 'http://', 'http://',];//フィード登録1次元配列に foreach ($url1 as $url) { //複数のRSSを読み込むには?A.RSSのURLを配列に入れ、その配列をsimplexmlの引数にします。 $count = 0;//初期のカウント //RSSを取得 $rss = simplexml_load_file("$url"); // simplexml_load_file()でRSSをパース解析してオブジェクトを取得します。 $site_title = $rss->channel->title; // RSSタイトル取得 値の代入 自作関数 $post_thumbnail= $rss->channel->thumb; // RSSサムネイル画像取得 値の代入 自作関数 foreach ($rss->item as $item) { // この内側で $item を参照する if ($count >= 8) { break;//8件を超えたとき取得を終了する } $count++; $title = $item->title; // タイトル $link = $item->link; // リンク $thumb = $item->thumb->url; // アイキャッチサムネイル $content = $item ->description;// 詳細、必要なのか不明 date_default_timezone_set("Asia/Tokyo");//日時、タイトルとサムネイル画像だけほしいので要らない気がする $dc = $item ->children('http://purl.org/dc/elements/1.1/');//RSSの情報をPHPで取得するとき、[simplexml_load_file()]関数を使いますが、読み込むファイルの形式が[RSS 1.0]の場合、特殊な処理を施してあげないと正確に取得・表示することができません。 $day = date('Y/m/d H:i',strtotime($dc -> date));// RSS日付け取得 値の代入 自作関数 RSS1.0を取得したい場合「dc」の名前空間は「xmlns:dc="http://purl.org/dc/elements/1.1/"」 と定義されているので、これを引数として指定します。 $key = date('YmdGHis', strtotime($dc -> date));//DB等に入れやすい書式に変換 } } //RSSをテーブルに入れる INSERT INTO rssfeed (title, link, thumb,content)//テーブル名 VALUES ($title, $link,$thumb,$content now()) ON DUPLICATE KEY UPDATE up_date = now(); //名前を独自につける $item_insert_sql = "INSERT INTO $db_database.`rssfeed`(title, link, thumb, content) VALUES ('" . $title . "', '" . $link . "', '" . $thumb . "', '" . $content . "')";//mysql_queryとしてまとめてコードとして使うため?

    • ベストアンサー
    • MySQL
  • テーブルデータの絞込み条件

    MySQL4.1、PHP Version 4.3.9を使用しています。 下記のような2つのテーブルA,Bから テーブルAに存在するキー(no)のデータのみ取得したいのですが、 どのようにWHERE文を書いたら一回のSQL文で取得出来るのでしょうか。 テーブルA no |name 1 |たろう 2 |はなこ 3 |じろう テーブルB no |old 1 |16 3 |18 取得したい結果テーブル no |name 2 |はなこ 良い方法が見つかりません。 宜しくお願いします。

  • C# MySQLのデータを個別に取得する方法

    お世話になります。 C#2010EexpessEditionにて、MySQLのデータを Connector/Netを使用し、SQLで取得する勉強をしています。 サンプルなどを見ながら、DataGridViewに表示するところまでは 行きましたが、一度に表示する仕組みのため、どのように 個別に取得すればいいのかを教えてください。 サンプルは下記の通りです。 ========================================================== //SQL文と接続情報を指定し、データアダプタを作成 MySqlDataAdapter da = new MySqlDataAdapter("SELECT id,name FROM event", conn); //データ取得 da.Fill(dt); //データ表示 dataGridView1.DataSource = dt; ========================================================== daの中の、該当するデータの一行目のnameの値だけ 取り出したいのですが、どのような記述にすれば 良いでしょうか。 何卒よろしくお願いいたします。

  • MySQLでの配列について

    MySQLについての質問です。 配列に関してわからないことがでてきました。 PHP側からMySQLに接続しデータを配列として取得するやり方をどなたか教えてください。 MySQL側にはseatというテーブルを用意してあります。 --------------- |seat|max|flag| |-------------| |A1 | 4 | 0 | |-------------| |A2 | 4 | 0 | |-------------| |B1 | 6 | 0 | |-------------| |B2 | 6 | 0 | |-------------| |C1 | 5 | 0 | |-------------| 以上のようにそのシート名、収容最大人数をデータとして保存しております。 PHP側からアクセスしてPHP側の$number(人数)と照らし合わせ、この$numberより$maxが多い時、このテーブルからシート名だけを取り出し、その値を配列として取得したいときSQL文をどのようにかけばよろしいでしょうか? へたくそな説明だとは思いますが、どなたかお願いいたします。

  • mySQLへのデータ接続全般について

    現在独学でPERL MYSQL PHPを学んでおります。 MYSQLからPHPにデータを書き込ませる、読み込ませるといった場合、 $sql="insert into~";とかpost getで投げるなどの決まりの構文があるとゆうことまでは理解できます。PERLをMYSQLに投げる場合も同じように考えたらいいのでしょうか?いろいろなサイトをあさってみても構文例がややこして理解できません。 超初心者ですので、とてもわかりやすく教えてくれるサイトなどありましたら教えてください。

    • ベストアンサー
    • Perl
  • MySQLで最新のデータから一回ずつ順番に取り出す方法 PHP

    idと、dataという2つのカラムで構成されたMySQLがあります。 そのidはプライマリキーに設定してあり、auto incrementとして、どんどん数値が増えていく設定です(phpMyAdminを使ってテーブルを作っています) そこで、そのid番号の現在の最新のものを php側から呼び出して取得し、 その次、しばらくすると、PHP側で再びその最新から2番目 (2番目に新しいデータ)を取得する命令を 投げたいと思っています。 そのあとは、同じように、3番目に新しいもの、 4番目、5番目と続けたいと思っています。 その際、毎回、php側で MySQLのデータの読み出し命令を送るわけですが、 その際、最新のもの、2番目に最新のものを 時間差でSELECTしていくには、 どのようにすればいいでしょうか。 PHP側で「いま3番目に新しいものを読んだので次は4番目に新しいもの」というように前回の状態を保持しておくことってできるのでしょうか。 また、このidというのは、途中で消したりしているidもあったりするので、1番から始まっていたとしても、途中の30番とかが抜けていたりして、歯抜け状態ですので、id番号でセレクトするとエラーになる可能性が高いです。 なので、id番号ではなく、 テーブルの上の行から選んでいくという方法が ベストだと思っています。 そのような指定をMySQLの構文で指定することって可能なのでしょうか? ちなみに、一応、何番のidを読むというのは理解しており、 以下のような感じのSELECT文をphpのqueryで使っていたりします。 table_aから、変数$indexNumの値のidを読むという処理を、 変数$queryに入れている文が以下になります。 $query = "SELECT arrayset FROM `table_a` WHERE id= '$indexNum'"; このあたりのノウハウをご存知の方、教えてくださいますと幸いです。 お願いいたします。

    • ベストアンサー
    • MySQL
このQ&Aのポイント
  • EP−306とiPadをつなげて印刷する方法をご紹介します。
  • EPSON iPRINTアプリを使用してEP−306とiPadを接続し印刷を行う方法を説明します。
  • EP−306とiPadを接続して印刷する際に表示がされない場合の対処法について解説します。
回答を見る