gpt4 book ai didi

php - 如何使用 JOIN 从 PHP 查询 mysql?

转载 作者:行者123 更新时间:2023-11-29 14:39:25 25 4
gpt4 key购买 nike

我的游戏脚本(php)中有这个代码。这会检查玩家是否装备了车辆,并且它仍然存在。我的代码:

if ($rs[vehicle] != 0) {
$sql_result2 = mysql_query("SELECT * FROM vehicles WHERE id='$rs[vehicle]'", $db);
if (mysql_num_rows($sql_result2) == 0) { mysql_query("UPDATE mobsters SET vehicle = 0 WHERE id ='$id'"); }
}

我想编辑此代码,以便如果它确实存在,它还将检查db_vehicles表并找出所述车辆的详细信息(名称、速度等)。一种草率的做法是:

if ($rs[vehicle] != 0) {
$sql_result2 = mysql_query("SELECT * FROM vehicles WHERE id='$rs[vehicle]'", $db);
if (mysql_num_rows($sql_result2) == 0) {
mysql_query("UPDATE mobsters SET vehicle = 0 WHERE id ='$id'");
} else {
$ = mysql_fetch_array($sql_result2);
$sql_result3 = mysql_query("SELECT * FROM db_vehicles WHERE id='$[type]'", $db);
$ = mysql_fetch_array($sql_result3);
$name = $[name]; $speed = $[speed];
}
}

显然,我想通过 JOIN 来执行此操作,以使用尽可能少的查询。我应该使用哪种连接?

最佳答案

您的代码应该仅使用一个 select 语句,另一个用于更新,这是 select with join:

$sql_result3 = mysql_query("Select dbv.Name, dbv.speed, dbv.type 
from db_Vehicles dbv inner join vehicles v
on v.id = dbv.id WHERE dbv.id='$rs2[type]'"
, $db);

顺便说一句,@mc10 说你的代码很容易受到 sql 注入(inject)的影响,所以你会在 SO 中找到很多关于如何防止它的内容,比如 ThisThis

关于php - 如何使用 JOIN 从 PHP 查询 mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8282678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com