我想運行一個mysql查詢,選擇所有用戶從一個表中排名從5000到15000的所有用戶。這兩個已被放入變量。讓我把它改成代碼,它會更好地解釋它。從1000到2000 php mysql
$user_rank = 10000 //this is actually a $row[''] pulled from a database
$rank_above = $user_rank + 5000;
$rank_below = $user_rank - 5000;
$fetch_users = mysql_query("SELECT * FROM users WHERE rank = '$rank_below' ?to? '$rank_above'");
不過,我也想讓結果的LIMIT 1個隨機結果,所以它僅選擇從用戶表中的一個隨機用戶。我甚至會以正確的方式去做這件事嗎? 非常感謝任何幫助,謝謝。
不要使用字符串插值來建立你的SQL字符串。對於這個問題,不要使用'mysql'模塊。永遠。包括遺留代碼。 (至少使用'mysqli'模塊。) – millimoose
是的,我一直在看,那是舊的還是過時的,還是存在安全問題和跨瀏覽器失誤? – VVV
安全問題。字符串連接/插值是結束SQL注入漏洞的最簡單方法。 **最好的避免它們的方法是使用準備好的查詢和參數替換,而這些'mysql'完全沒有。 (雖然'mysqli'可以,使用['mysqli_bind_param'](http://www.php.net/manual/en/mysqli-stmt.bind-param.php)。)使用'mysql'時可以避免SQL注入使用'mysql_real_escape_string',但IMO更容易記住一致地應用參數綁定,而不是記住用該函數包裝所有用戶輸入。 (後者看起來也很可怕。) – millimoose