2012-02-02 10 views
-1

そうですね、私はまだ準備された声明の周りに頭を浮かべています。私が思うたびに、私はそれを持っています。新しいクエリが来て、私は思っています。このクエリを準備済みの文に変更するにはどうすればよいですか?

ここで私は、日付に基づいてデータベースからレコードを取り出し、その日付で注文するクエリを持っています。それが見つかったレコードは年と月値に基づいており、クエリは次のようになります。

$getresults = mysql_query(" SELECT * FROM `results` WHERE `date` LIKE '2012-$monthid%' ORDER BY date "); 

私はすでに私のデータベースからユーザーレコードを取得するための基本的なプリペアドステートメントを持っている:

$query = "SELECT * 
      FROM results 
      WHERE date = ? 
      LIMIT 1"; 

    if($stmt = $this->conn->prepare($query)) 
    { 
     $stmt->bind_param('s', $date); 
     $stmt->execute(); 

     if($stmt->fetch()) 
     { 
      $stmt->close(); 
      return true; 
     } 
     else 
      return false; 
    } 

どうだろうこれを最初のクエリのように変更しますか?

ありがとうございました。

答えて

2

ひとつのアイデアは、WHERE句の別々の部分に年と月によってフィルタリングするようになります:

$query = "SELECT * FROM results WHERE YEAR(date) = 2012 AND MONTH(date) = ? ORDER BY date"; 

if ($stmt = $this->conn->prepare($query)) { 
    $stmt->bind_param('i', $monthid); 
    ... 
} 
+1

1 - フィールドはちょうど_wrong_を感じた日に 'LIKE'を使用して! – Alnitak

関連する問題