簡體   English   中英

如何使用JOIN從PHP查詢mysql?

[英]How do I use JOIN to query mysql from PHP?

我的游戲腳本(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語句,而另一個使用update語句,這是帶有join的select:

$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注入,因此您會在SO中找到很多有關如何防止此類此類的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM