Ibr*_*him -1 php sql pdo equals
所以我尝试随机选择 2 行,但 id 不允许等于 x 或等于 y。
这就是我到目前为止所尝试的:
$statment = $db -> "SELECT * FROM player ORDER BY RAND() LIMIT 2 WHERE
NOT(id = ?) OR WHERE NOT(id=?)";
$statement->execute(array($player1, $player2));
Run Code Online (Sandbox Code Playgroud)
但得到:
解析错误:语法错误,意外的“SELECT * FROM player ORDER BY”(T_CONSTANT_ENCAPSED_STRING),期望标识符(T_STRING)或变量(T_VARIABLE)
您需要AND确保它不等于<>两者:
WHERE id <> ? AND id <> ?
Run Code Online (Sandbox Code Playgroud)
或者检查它是否不是IN列表:
WHERE id NOT IN(?, ?)
Run Code Online (Sandbox Code Playgroud)
我不确定 SQL 语句的顺序,请尝试:
SELECT * FROM player WHERE id <> ? AND id <> ?
ORDER BY RAND() LIMIT 2
Run Code Online (Sandbox Code Playgroud)
另外,你可能错过了类似的东西prepare:
$statement = $db->prepare("SELECT * FROM player WHERE id <> ? AND id <> ?
ORDER BY RAND() LIMIT 2");
Run Code Online (Sandbox Code Playgroud)