前提
いつもお世話になっております。
質問があるのですが、現在phpをデータベースと接続し、その中でmysqlのカラムの内容を全て取ってくるということをしているのですが、下記の一つ目のsql文では内容を取ってくることができず、二つ目のsql文に直すと内容が取れたのですが、一つ目で取れず二つ目で取れる理由がわから無いので質問させていただきます。
実現したいこと
なぜ一つ目で取り出せず、二つ目で取り出せるのか?
書き方が違うなら教えていただきたいです。二つ目より一つ目で取ってこれるなら記述も少なすスッキリするとは思うのですが…
該当のソースコード
<?php $db = new mysqli('localhost', 'root', 'root', '***'); if(!$db){ die($db->error); } //このままだと持ってこれ無い。 $stmt = $db->prepare('select * from contacts where id=?'); if(!$stmt){ die($db->error); } $id = filter_input(INPUT_GET,'id',FILTER_SANITIZE_NUMBER_INT); $stmt->bind_param('i',$id); $success = $stmt->execute(); if(!$success){ die($db->error); } $stmt->bind_result($id,$name,$furigana,$phone,$email,$body); $stmt->fetch(); ?>
<?php $db = new mysqli('localhost', 'root', 'root', '***'); if(!$db){ die($db->error); } //ここを変えると持ってこれる。 $stmt = $db->prepare('select c.id, c.name, c.furigana, c.phone, c.email, c.body from contacts c where id=?'); if(!$stmt){ die($db->error); } $id = filter_input(INPUT_GET,'id',FILTER_SANITIZE_NUMBER_INT); $stmt->bind_param('i',$id); $success = $stmt->execute(); if(!$success){ die($db->error); } $stmt->bind_result($id,$name,$furigana,$phone,$email,$body); $stmt->fetch(); ?>
試したこと
sqlで*はすべて指定するといった内容だと思うのですが、これだと持ってこれませんでした。
初心者なので、基本のことなのかも知れませんが、ここだけで悩んでしまい、書き直しましたがどうなっているのかモヤモヤするので、わかる方がいれば教えていただいたいです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。


あなたの回答
tips
プレビュー