私は2つのテーブルを持つ予約システムを持っています。ユーザーが予約したかどうかをユーザーが知るようにユーザー(ユーザーと呼ばれる)の1つのテーブルと、そのクラスにどのユーザーがサインアップしているかを教師が知るように、教師用の別のテーブル(予約と呼ばれる)。以下は、ユーザーがクラスのブックを解除したときの例です。2つのクエリまたはPHPを使用してmysqliで1?
$new_classes_booked=$classes_booked-1;
$sql2 = $con->query("UPDATE users SET $classes_booked='{$new_classes_booked}' where userID='{$User}'");
$sql2 = $con->query("DELETE FROM bookings where user='{$user}' AND id_class='{$id_classs}'");
このシステムは、多くのユーザーと教師が同時に使用します。それを考えると、これを実行するためのより効率的で安全な方法がありますか?
[Little Bobby](http://bobby-tables.com/)は[あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how-can-i) -prevent-sql-injection-in-php)を実行します。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –
[PDO](http://php.net/manual/en/pdo.prepared-statements.php)と[MySQLi(英語)]の[prepared](http://en.wikipedia.org/wiki/Prepared_statement) ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)、PDOの使用を検討してください。[とても簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –
'このシステムは多くのユーザーと教師によって同時に使用されます'秒ごとに何千ものリクエストがありますか? 1000 /秒未満の場合は、この段階での早期の最適化よりもクエリのセキュリティについての心配があります –