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

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

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

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

1331閲覧

phpにてfetchがうまくできない

lnavi.bex810vh

総合スコア12

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2020/12/23 09:33

困っていること

たびたび申し訳ありません。データベースからSELECTしようとすると、下記エラーが表示されます。

試したこと

var_dump();を使ったりしたのですが、「$rec1=$stmh1->fetch(FETCH_ASSOC);」の所がbool(false)となります。当該レコードは確かに<checkbox>にて選択され、POSTもされている状況です。理由はif条件式を通過して実行されているからです。

Warning: Use of undefined constant FETCH_ASSOC - assumed 'FETCH_ASSOC' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\idol\update_profile_done.php on line 45

実現したいこと

正しくfetchできるようにしたい。

<?php session_cache_limiter('private_no_expire'); require_once('login_tmp.php'); require_once('../common/common.php'); ?> <!DOCTYPE html> <html> <head><meta charset=UTF-8> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>プロフィール登録完了</title> </head> <body> <h3>プロフィール登録完了</h3><br /> <?php $post=sanitize($_POST); $id=$_SESSION['id']; if($id=='') { print '無効なパラメータです。'; exit(); } //データベース接続 $dsn='mysql:host=localhost;dbname=idol;charset=utf8'; $user='root'; $password=''; $dbh= new PDO($dsn,$user,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); if (isset($post['del_img00'])) { if ($post['del_img00'] != "") { $sql1='SELECT * FROM mst_img WHERE mem_id=? AND img_flg=11'; $stmh1=$dbh->prepare($sql1); $stmh1 -> bindValue(1, $id, PDO::PARAM_INT); $stmh1->execute(); $rec1=$stmh1->fetch(FETCH_ASSOC); $img=substr($rec1['image'],4); print $img; } } 以下、省略

<<<遷移前のソース>>>

<?php session_cache_limiter('private_no_expire'); require_once('login_tmp.php'); require_once('../common/common.php'); ?> <!DOCTYPE html> <html> <head><meta charset="UTF-8"> <title>プロフィール確認</title> </head> <body> <?php $err=''; $post=sanitize($_POST); print '<h3>プロフィール確認</h3><br />'; print '<form name="update_profile_check" method="post" action="update_profile_done.php"><br />'; print '変更後のハンドルネーム:<br />'; $idol_name=$post['idol_name']; print $idol_name.'</br />'; print '<input type="hidden" name="idol_name" value="'.$idol_name.'">'; print '変更後の都道府県<br />'; $pref_arr=array( "0"=>"内緒" ,"1"=>"北海道" ,"2"=>"青森県" ,"3"=>"岩手県" ,"4"=>"宮城県" ,"5"=>"秋田県" ,"6"=>"山形県" ,"7"=>"福島県" ,"8"=>"茨城県" ,"9"=>"栃木県" ,"10"=>"群馬県" ,"11"=>"埼玉県" ,"12"=>"千葉県" ,"13"=>"東京都" ,"14"=>"神奈川県" ,"15"=>"新潟県" ,"16"=>"富山県" ,"17"=>"石川県" ,"18"=>"福井県" ,"19"=>"山梨県" ,"20"=>"長野県" ,"21"=>"岐阜県" ,"22"=>"静岡県" ,"23"=>"愛知県" ,"24"=>"三重県" ,"25"=>"滋賀県" ,"26"=>"京都府" ,"27"=>"大阪府" ,"28"=>"兵庫県" ,"29"=>"奈良県" ,"30"=>"和歌山県" ,"31"=>"鳥取県" ,"32"=>"島根県" ,"33"=>"岡山県" ,"34"=>"広島県" ,"35"=>"山口県" ,"36"=>"徳島県" ,"37"=>"香川県" ,"38"=>"愛媛県" ,"39"=>"高知県" ,"40"=>"福岡県" ,"41"=>"佐賀県" ,"42"=>"長崎県" ,"43"=>"熊本県" ,"44"=>"大分県" ,"45"=>"宮崎県" ,"46"=>"鹿児島県" ,"47"=>"沖縄県" ); if (isset($post['pref_id'])) { if ($post['pref_id'] != "") { $pref_id=$post['pref_id']; }else{ print '都道府県が入力されていません。'; print '<input type="button" onclick="history.back()" value="戻る">'; exit(); } foreach($pref_arr as $key=>$val) { if ($pref_id==$key) { print $val; } } } print '<br />'; print '<input type="hidden" name="pref_id" value="'.$pref_id.'">'; if (isset($post['del_img00'])) { if ($post['del_img00'] != "") { $del_img00=$post['del_img00']; print $del_img00; print '<input type="hidden" name="del_img00" value="'.$del_img00.'">'; } } if (isset($post['del_img02'])) { if ($post['del_img02'] != "") { $del_img02=$post['del_img02']; print $del_img02; print '<input type="hidden" name="del_img02" value="'.$del_img02.'">'; } } if (isset($post['del_img04'])) { if ($post['del_img04'] != "") { $del_img04=$post['del_img04']; print $del_img04; print '<input type="hidden" name="del_img04" value="'.$del_img04.'">'; } } if (isset($post['del_img06'])) { if ($post['del_img06'] != "") { $del_img06=$post['del_img06']; print $del_img06; print '<input type="hidden" name="del_img06" value="'.$del_img06.'">'; } } $appeal=$post['appeal']; print '<textarea name="appeal" rows="8" cols="20">'; print $appeal; print '</textarea>'; print '<input type="submit" value="登録">'; print '<br /><br />'; if($err=='1') { print '<input type="button" onclick="history.back()" value="修正する">'; } print '</form>'; ?> </body> </html>

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました。FETCH_ASSOCではなく、PDO::FETCH_ASSOCでした。初歩的なミスで申し訳ございません。ありがとうございました。

投稿2020/12/23 09:55

lnavi.bex810vh

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問