在使用php的mysqli中有2个查询或1个查询


2 queries or 1 in mysqli using php?

我有一个有两张桌子的预订系统。一张表供用户(称为用户)使用,以便用户知道是否已经预订,另一张表则供教师使用(称为预订),以便教师知道哪些人已经报名参加了他们的课程。下面是一个用户取消预订类的示例。

$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}'");

该系统将被许多用户和教师同时使用。鉴于此,是否有更高效、更安全的方法来执行此操作?

我建议您执行两个查询,一个接一个。第二个会执行得很快,不会有任何区别。如何查看mysqli_multi_query()函数。

有没有更有效的方法来执行这个?

是的
坦率地说,表结构非常糟糕,违反了数据库设计的每一条规则。

在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查询,并且感觉非常健康。

只要您不是在循环中运行查询,就可以使用您认为适合您任务的任意数量的查询。