この質問は何度も尋ねられていますが、解決策は私にとっては効果がないようです。非オブジェクトのプロパティを取得しようとしている/ booleanのメンバー関数bind_param()を呼び出す
私は簡単なブログを書いています。私はアーカイブセクションを作りたがっていましたが、私は立ち往生しました。これは私が持っているコードの一部であり、それは面倒です:
$month = $_GET['month'];
$year = $_GET['year'];
$from = date('Y-m-01 00:00:00', strtotime("$year-$month"));
$to = date('Y-m-31 23:59:59', strtotime("$year-$month"));
echo $from;
echo $to;
$sql = "SELECT * FROM posts WHERE date >= ".$from." AND date <= ".$to." ORDER BY date DESC";
$stmt = $conn->query($sql);
var_dump($stmt);
if($stmt->num_rows > 0){
while($row = $stmt->fetch_assoc()){
とコードのこの作品は、(非オブジェクトのプロパティを取得しようとする)if文の中で私に次のエラーを与えています。 var_dump()はbool(false)を返します。だから、クエリは問題だと思われますが、限り私はそれが大丈夫です懸念している。私はそれをチェックし、タイプミスはなく、すべての名前も正しいです。
また、私はこのようにそれを実行しようとしました:
$month = $_GET['month'];
$year = $_GET['year'];
$from = date('Y-m-01 00:00:00', strtotime("$year-$month"));
$to = date('Y-m-31 23:59:59', strtotime("$year-$month"));
echo $from;
echo $to;
$sql = "SELECT * FROM posts WHERE date >= ".$from." AND date <= ".$to." ORDER BY date DESC";
$stmt = $conn->prepare($sql);
var_dump($stmt);
$stmt->bind_param('ii', $from, $to);
$stmt->execute();
しかし、それは私に(ブールのメンバ関数のbind_paramへの呼び出し())別のエラーになりますので、再度、クエリが問題となっているようです。私は本当にこれに対処する方法を知らない。助言がありますか?
UPDATE:
$month = $_GET['month'];
$year = $_GET['year'];
//set from and to dates
$from = date('Y-m-01 00:00:00', strtotime("$year-$month"));
$to = date('Y-m-31 23:59:59', strtotime("$year-$month"));
echo $from;
echo $to;
$sql = "SELECT * FROM posts WHERE date >= ? AND date <= ? ORDER BY date DESC";
$stmt = $conn->prepare($sql);
//var_dump($stmt);
$stmt->bind_param('ii', $from, $to);
$stmt->execute();
if($stmt->num_rows > 0){
while($row = $stmt->fetch_assoc()){
$query = "SELECT * FROM comments WHERE postId=".$row['id'];
$comNumber = $conn->query($query);
$total = $comNumber->num_rows;
echo "<section class='post'>
<img class='postImage' src='img/".$row['id'].".png'>
<div class='postComment'>
<div class='postCommentBubble'><img src='img/commentBubble.svg'></div>
<div class='postCommentCount'>".$total." comments</div>";
echo "<div class='postDate'>".date("d F Y G:i", strtotime($row["date"]))."</div>";
if(isset($_SESSION['user']) && $_SESSION['privileges']==true){
echo "<a class='postDelete' href='delete-post.php?id=".$row["id"]."'><img src='img/garbage.svg'></a>";
echo "<a class='postEdit' href='edit-post.php?id=".$row["id"]."'><img src='img/pencil.svg'></a>";
}
echo "</div>
<header class='postTitle'><a href='post.php?id=".$row['id']."'>".$row['title']."</a></header>
<div class='postIntro'>".$row['intro']."</div>
<div class='postLinkContainer'><a class='postLink' href='post.php?id=".$row['id']."'>read more</a></div>
</section>
";
}
}
それが間違っていて、それはエラーを取り除きましたが、それでも何らかの理由で結果が得られません。最初の投稿をより多くのコードで更新しました。あなたがそれを見ることができるなら、私はそれを感謝します。ありがとう。 – hinvest
@hinvest申し訳ありませんが、どの出力が得られているのか、コードに基づいて期待していたものがわかりません。あなたはクエリを実行し、期待している結果を得ることができますか?しかしこれは問題を拡張しています。時間をかけてSQLとPHPを見て、後で別の質問をすることをお勧めします。 – nerdlyist
私の問題は、結果が得られないということです。クエリの「日付」要件と一致するデータベース内の行があっても、MySQLは行を返しません。 – hinvest