我有一张带两张桌子的预订系统。用户(称为用户)的一个表,以便用户知道它是否已经预订,以及教师的另一个表(称为预订),以便教师知道哪些已经注册了他们的班级。以下是用户取消预订课程的示例。
$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}'");
该系统将同时被许多用户和教师使用。鉴于此,是否有更有效,更安全的方式来执行此操作?
答案 0 :(得分:0)
我建议你一个接一个地执行两个查询。第二个将执行得如此之快,以至于它不会有任何区别。你怎么能看看 mysqli_multi_query()函数。
答案 1 :(得分:0)
有更有效的方法来执行此操作吗?
是。
坦率地说,表结构很糟糕,违反了数据库设计的每一条规则。
在users表中应该没有类似$ classes_booked的内容。预订课程的数量应从预订表中获取。
是否有更高效,更安全的方式来执行此操作?
是。
使用预备陈述。
由于我的mysqli教程还没有准备好,这里是基于PDO的安全查询:
$sql = "DELETE FROM bookings where user=? AND id_class=?";
$con->query($sql)->execute([$user,$id_class]);
使用php在mysqli中进行2次查询或1次查询?
在PHP中运行2个或更多查询时,绝对没有错。典型的应用程序在每次点击时运行几十个SQL查询,并且感觉非常健康。
只要您没有在循环中运行查询,请使用适合您任务的任意数量的查询。