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

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

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

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Q&A

解決済

1回答

1059閲覧

phpMyAdminの親IDへの紐づけ処理が1件しか取込できない

satokibi

総合スコア5

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

0グッド

0クリップ

投稿2020/07/04 14:15

編集2020/07/04 14:32

前提・実現したいこと

API処理でワードプレスにphpMyAdminからpostsに記事データと画像データ(サムネイル)用で別々にinsert処理をしてサムネイル表示をしています。

ここに質問の内容を詳しく書いてください。

|ID|post_parent|guid |post_type |post_mime_type| |696 | | |post | |←記事データ |697 | 696 |画像URL|attachment|image/Jpeg |←画像データ |698 | | |post | |←記事データ |700 | | |post | |←記事データ

ID(仮)で699番と701番の画像データのinsertが欲しいですが処理が分かりません。

コードは以下のように記載しています。

for($i=0; $i<="$hits"-1; $i++){ $sql0 = $pdo->prepare('insert ignore into wpho_posts(post_author,post_date,post_date_gmt,post_content,post_title,post_name)values(:post_author,:post_date,:post_date_gmt,:post_content,:post_title,:post_name)'); $sql1 = $pdo->prepare('insert into wpho_posts(post_author,post_parent,guid,post_type,post_mime_type)values(:post_author,:post_parent,:guid,:post_type,:post_mime_type)'); $sql2 = $pdo->prepare('insert into wpho_postmeta(post_id,meta_key,meta_value)values(:post_id,:meta_key,:meta_value)'); $sql3 = $pdo->prepare('insert into wpho_postmeta(post_id,meta_key,meta_value)values(:post_id,:meta_key,:meta_value)'); $sql4 = $pdo->prepare('insert into wpho_postmeta(post_id,meta_key,meta_value)values(:post_id,:meta_key,:meta_value)'); $sql0->bindValue(':post_author',1,PDO::PARAM_STR); $sql0->bindValue(':post_date',date("Y/m/d"),PDO::PARAM_STR); $sql0->bindValue(':post_date_gmt',date("Y/m/d"),PDO::PARAM_STR); $sql0->bindValue(':post_content',"<div> <a href=$affi_link[$i]><img src =$gazo[$i]></a><BR> </div>",PDO::PARAM_STR); $sql0->bindValue(':post_title',$title[$i],PDO::PARAM_STR); $sql0->bindValue(':post_name',$content_id[$i],PDO::PARAM_STR); $sql0 -> execute(); $post_id_1[$i] = $pdo->lastInsertId(); $sql1->bindValue(':post_author',1,PDO::PARAM_STR); $sql1->bindValue(':post_parent',$post_id_1[$i],PDO::PARAM_STR); $sql1->bindValue(':guid',"URL/$filename[$i]",PDO::PARAM_STR); $sql1->bindValue(':post_type','attachment',PDO::PARAM_STR); $sql1->bindValue(':post_mime_type','image/jpeg',PDO::PARAM_STR); $sql1-> execute(); $media_id[$i] = $pdo->lastInsertId(); $sql2 ->bindValue(':post_id',$media_id[$i],PDO::PARAM_STR); $sql2 ->bindValue(':meta_key',"_wp_attached_file",PDO::PARAM_STR); $sql2 ->bindValue(':meta_value',"URL/$filename[$i]",PDO::PARAM_STR); $sql2 -> execute(); $sql3 ->bindValue(':post_id',$post_id_1[$i],PDO::PARAM_STR); $sql3 ->bindValue(':meta_key',"_thumbnail_id",PDO::PARAM_STR); $sql3 ->bindValue(':meta_value',$media_id[$i],PDO::PARAM_STR); $sql3 -> execute(); $sql4 ->bindValue(':post_id',$post_id_1[$i],PDO::PARAM_STR); $sql4 ->bindValue(':meta_key',"_wp_page_template",PDO::PARAM_STR); $sql4 ->bindValue(':meta_value',"default",PDO::PARAM_STR); $sql4 -> execute(); }

sql1の部分だけがループ処理できずsql3以降は問題なくループ処理ができます。
sql1だけ一回の結果のみが格納されてそれ以降は全く反応しない状況になります。

一度、うまくできたのですがコードのコピーを取り忘れてしまい現状に至っております。
基本書やネットで確認しましたが申し訳ございませんがご教示頂けると幸いです。

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

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

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

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

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

satokibi

2020/07/04 14:33

大変失礼いたしました。 コードに修正させていただきました。
guest

回答1

0

ベストアンサー

とりあえずエラーモードの設定とtry-catch処理をしてください
それとソースのほとんどが問題解決に不要な部分ですね、躓いている部分を
ぬきだして質問されたほうがよさそうです

投稿2020/07/04 14:51

yambejp

総合スコア116724

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問