Mientras miraba a través de stackoverflow, encontré lo siguiente: Cómo crear una declaración de cambio de PHP dinámica a partir de una consulta MySQL
Lo que resultó en que intentara algo que no había probado antes, no funciona, pero tengo curiosidad por saber por qué no funciona en lugar de tratar de encontrar una manera de hacerlo funcionar.
Aquí está mi código:
function SOMENAME(){ global $mysqli ; $out = false ; $VALIDTOKENS = array(); $sql = "SELECT * FROM `tokens` ORDER BY `tokens`.`id` ASC"; if($result = mysqli_query($mysqli, $sql)) { while ($row = mysqli_fetch_assoc($result)) { $VALIDTOKENS[$row['token']] = $row['token']; } } if(isset($_GET['key'])) { $key = $_GET['key']; } switch($key) { case $VALIDTOKENS[$key]: $out = true ; break; } return $out ; }La función siempre devuelve falso.
Según la lógica de su código, cuando devuelve falso, hay muchas posibilidades, como que la base de datos no se pudo vincular, la consulta falló, la tabla de la base de datos no existe, el campo no existe, etc. Se recomienda depurar con puntos de interrupción, puede usar var_dump() en diferentes líneas de código, verifique los resultados devueltos.