0

私は、日付、event_name、会場、time_start、および time_finish を含む予約済みイベントのテーブルをデータベースに持っています。今、新しいイベントを予約したいとき、日付と時間枠を指定して、特定の会場がすでに占有されているかどうかを最初に確認したいと思います。

これは私がこれまでに得たものであり、機能していません。

<?php
session_start();
include('config1.php');

       $sql = "SELECT venue FROM schedules WHERE venue =".$_POST['venue']" && date =".$_POST['date']" ";

       $select = mysql_query($sql);

       $row = mysql_num_rows($select);

            if ($row > 0)  
          {
            echo 'true';  
          }
             else 
          {
             echo 'false';
          }

?>


and the check-venue.php
<?php
session_start();
include('config1.php');

       $sql = "SELECT venue FROM schedules WHERE venue =".$_POST['venue']" && date =".$_POST['date']" ";

       $select = mysql_query($sql);

       $row = mysql_num_rows($select);

            if ($row > 0)  
          {
            echo 'true';  
          }
             else 
          {
             echo 'false';
          }

?>
4

1 に答える 1

1

mysql_*まず、関数を使用するべきではありません。

この拡張モジュールは PHP 5.5.0 で非推奨になり、将来的に削除される予定です。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。

第 2 に、$_POSTこのようにクエリに直接値を入力すると、あらゆる種類のインジェクション攻撃にさらされることになります。それを防ぐために、データを適切にエスケープしていることを確認する必要があります。

第三に(おそらくまったく機能しない理由)、DBに送信している(おそらく文字列)値を引用していません。クエリを作成するときに構文エラーがあります-連結演算子(.)がありません変数。適切なエディターであれば、ファイルを保存する前に、この種のエラーにフラグを立てる必要があります。

于 2013-03-26T22:30:16.803 に答える