下記の画像ですがcomment(text型)の所だけが何も格納されなくて困っています。
原因が分かる方いましたら、ご指導お願いします。
下記がSQL文の実行書式です。
下記がphpmyadminです。
以下、コードとなります。
try{//例外が発生した時の処理
1if(!empty($_POST)) {//投稿するボタンがクリックされたとき 2 $image = date('YmdHis') . $_FILES['image']['name']; 3 move_uploaded_file($_FILES['image']['tmp_name'], 'comimg/' . $image); 4 $com['join'] = $_POST;//$com['join]に$_POSTを格納 5 $com['join']['thumimg'] = $image; 6 7 $insertcom = $db->prepare("INSERT INTO community SET member_id=?,comtitle=?,thumimg=?,numrest=?,location=?,use_camera=?,comment=?,created=NOW()"); 8 //SQL文を実行 9 $insertcom->execute(array( 10 $member['id'], 11 $com['join']['comtitle'], 12 $com['join']['thumimg'], 13 $com['join']['numrest'], 14 $com['join']['location'], 15 $com['join']['use_camera'], 16 $com['join']['comment'] 17 )); 18 } 19} 20catch(Exception $ex){//例外が発生するかもしれない処理 21 print $ex->getMessage(); 22 exit(); 23} 24finally{//例外が発生してもしなくても実行する処理 25 $db = null; 26}
何をやってできてないのか分からないので実際に実行されたINSERT文などご提示ください。
できればCREATE文も。
適切に指定されていたら入らないはずはありません。
PHPMyAdminなどからは確認できますか?
回答ありがとうございます。
只今、SQL文の実行コードとphpmyadminの構造を記載しました。
どうかよろしくお願いします。
コードは画像ではなくテキストデータで、マークダウンcode機能を利用して提示してください。
再現確認のためには回答者がコピペできる必要があります。
phpmyadminの「データの表示」のほうが大事ですね。そちらから確認できるようであれば、コマンドライン上、データが多すぎて省略されただけとも解釈できますし。
PHPから入れたデータであればPHPからSELECTして確認もできますし。
try{//例外が発生した時の処理
if(!empty($_POST)) {//投稿するボタンがクリックされたとき
$image = date('YmdHis') . $_FILES['image']['name'];
move_uploaded_file($_FILES['image']['tmp_name'], 'comimg/' . $image);
$com['join'] = $_POST;//$com['join]に$_POSTを格納
$com['join']['thumimg'] = $image;
$insertcom = $db->prepare("INSERT INTO community SET member_id=?,comtitle=?,thumimg=?,numrest=?,location=?,use_camera=?,comment=?,created=NOW()");
//SQL文を実行
$insertcom->execute(array(
$member['id'],
$com['join']['comtitle'],
$com['join']['thumimg'],
$com['join']['numrest'],
$com['join']['location'],
$com['join']['use_camera'],
$com['join']['comment']
));
}
}
catch(Exception $ex){//例外が発生するかもしれない処理
print $ex->getMessage();
exit();
}
finally{//例外が発生してもしなくても実行する処理
$db = null;
}
上記がコードとなっております。
あと、phpmyadminでもINSERTが確認されてませんでした。
マークダウンcode機能は質問本文でないと使えませんし、
このコメント欄はデフォルト非表示なので目につきにくいです。
間違いであったため(INSERTの構文ミスではないですね)編集削除しました。失礼しました。
どこが間違えているかご指摘していただいてもよろしいでしょうか?
コード部分を選択して<code>ボタンを押してください >マークダウンのcode機能
テキストで提示された以上、画像部分は不要なので削除していただければと。
マークダウンのcode機能でコード部分を修正しました。
$_POSTされる入力フォーム部分が提示されていないのでこちらでは確認できないのですが、
var_dump($_POST);
で全て間違いなく入れようとしている情報がそのkeyで入っているのでしょうか?
var_dump($_POST);
exit;
をしましたら、
以下の入力値がとれました。
何故か、thumimgとcommentが取れていませんでした。
array(4) { ["comtitle"]=> string(9) "テスト" ["numrest"]=> string(1) "3" ["location"]=> string(6) "大坂" ["use_camera"]=> string(1) "0" }
としたらあとはリクエストが送られてくる画面やフォームの方ですね。
そのnameで入力コントロールが設置されていないとかAjaxであればそのkeyが含まれていないとかではないでしょうか。
thumimgについては自身で$imageという変数を作ってから新たに格納しているので$_POSTに含まれていないのは当然かと思います。
入力コントロールの所を見たら、name="comment"が設置してありませんでした!!
そして、それを入れたら無事にINSERTできました!!
感動しました!!(^~^)
本当にありがとうございます!!
ご自身で”解決までの顛末を具体的に”回答を書いてベストアンサーとし、「解決済み」としてください。
次からで結構です。ご自身が持っている情報はなるべく全て提示するようにしてください。
他人が同じような状況を再現できるための情報ですね。
コードはもちろんですし、データベースを扱うのであれば同じデータベースを構築可能なようにCREATE文とサンプルデータのINSERT文まで提示されていると、問題の再現確認が即座に可能となり、何度もやり取りしなくてもすぐに的確な回答が可能となります。
わかりました。
本日はどうもありがとうございました。
ベストアンサーとさせていただきます。
すみません、これってどこからベストアンサー押したらいいですか?
見当たらないのですが...
ん、私のコメント部分を回答にしてくれという依頼ですかね?
あくまで私は問題切り分けのために試してもらっただけですけども。
ここは「追記修正依頼」なので回答ではありません。上記のとおり、追記修正をしてもらうなかで(本来は質問する前に確認できることを)確認してもらっていただけです。
あ、なるほどです。
わかりました。
初心者ですみません。ありがとうございました(--)
ひとまず、回答にまとめますね。
回答2件
あなたの回答
tips
プレビュー