したがって、データベースに、2001-04-25(DATE型)という値のbirthdayという行があります。そして、それがユーザーの誕生日かどうかを確認したいと思います。私は現在の月と日を取得します:
$monthday_today = date('m-d');
そして、クエリを実行するよりも:
$query = "SELECT * FROM users WHERE DATE_FORMAT(birthday, '%m-%d')=".$monthday_today;
しかし、それは機能しません、何か考えはありますか?
$ monthday_todayの値を引用する必要があります。
クエリ(出力する場合)は次のようになります。
SELECT * FROM users WHERE DATE_FORMAT(birthday, '%m-%d') != 04-2014
ただし、これは正しいSQLクエリではありません。クエリは次のようになります。
SELECT * FROM users WHERE DATE_FORMAT(birthday, '%m-%d') != '04-2014'
簡単な解決策は次のとおりです。
$query = "SELECT * FROM users WHERE DATE_FORMAT(birthday, '%m-%d')!="."'".$monthday_today."'";
良い解決策は、位置パラメータまたは名前付きパラメータのいずれかでパラメータ化されたプリペアドステートメントを使用することです。
$query = "SELECT * FROM users WHERE DATE_FORMAT(birthday, '%m-%d') != ?";
または
$query = "SELECT * FROM users WHERE DATE_FORMAT(birthday, '%m-%d') != :monthday_today";
パラメータ化されたプリペアドステートメントは、変数のタイプによって引用が必要かどうかを推測(推測)するため、引用する必要はありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加