0

私はmysqlとphpを使用して、今日の日付に等しいすべてのユーザーをmysqlデータベースから引き出しています。私が抱えている問題は、次のコードを実行するたびにエラーが発生することです。エラーの外観からすると、年と関係があるように見えます。または、ドットが気に入らないかもしれませんが、よくわかりません。

<?php
$today = date("d.m.y");
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
 WHERE date=$today")or die(mysql_error());

while($row = mysql_fetch_array($result))
  {
  echo $row['name'] . " " . $row['email']. " " . $row['date'];
 echo "<br />";
  }

  ?>

これはそれが投げているエラーです:

You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near '.12' at line 2
4

5 に答える 5

1

変数を引用符で囲む必要があります$today。また、date列名は予約されているため、バックチェックする必要があります。

$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
      WHERE `date`='$today'")or die(mysql_error());
于 2012-05-29T14:10:10.830 に答える
1

日付文字列を引用符で囲む必要があります。

$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
WHERE date='$today'")or die(mysql_error());
于 2012-05-29T14:09:26.430 に答える
1

まず、$todayを文字列としてSQLクエリに追加する必要があります。

mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` = '$today'");

dateはSQLの予約語であるため、バッククォートでエスケープする必要があります。

しかし、MySQLのネイティブ関数と、、などの定数を使用することをお勧めしNOW()ます。CURRENT_TIMESTAMPSYSDATE

SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` = NOW()
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` < NOW() - INTERVAL '2' DAYS
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` > NOW() + INTERVAL '5' HOURS

等...

于 2012-05-29T14:11:15.587 に答える
0

mysqlでデータ型としてタイムスタンプを使用している場合は、最初に日付をUNIXタイムスタンプに変換する必要があります。

$today = strtotime("now");

または、日時または日付データ型を使用している場合、正しい形式は次のとおりです。

YY-MM-DD, so you need to create the date accordingly. 

$today = ('Y-m-d');

また、クエリに一重引用符がありません。

"SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE date = '$today'"

ただし、PHPのdate関数を使用せずに、MYSQL NOW()を直接使用して、日付を比較できます。

SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE date = NOW()
于 2012-05-29T14:11:26.803 に答える
0

試す

$today = date("d-m-Y"); 

また

$today = date("Y-m-d"); 

また、日付列の形式がの戻り値の形式と等しいことを確認してくださいdate()

データ型を使用DATETIMEしたことがある場合は、一致する形式を使用する必要がある場合があります。

また、日付の値を一重引用符で囲みます...

$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
WHERE date = '" . $today . "'")
于 2012-05-29T14:15:48.987 に答える