PHP: mientras el bucle no funciona después de ajustar SELECT para la prevención de inyección SQL
Estoy tratando de configurar consultas PHP para MySQL de manera de evitar la inyección de SQL (sitio web estándar).
Tuve un par de consultas INSERT donde cambiar esto funcionó bien peroen el siguiente SELECT sigo recibiendo un error desde la actualización y parece que el ciclo while no funciona con los cambios que hice (funciona bien sin usar la declaración como en el código anterior).
¿Alguien puede decirme qué estoy haciendo mal aquí?
Nuevo PHP:
$stmt = $conn->prepare("SELECT ? FROM TranslationsMain WHERE location LIKE '%calendar weekday%' ORDER BY sortOrder, ?");
$stmt->bind_param('s', $selectedLang);
$stmt->execute();
$result = $stmt->get_result();
while($arrCalWeekdays = $result->fetch_assoc()){
$calWeekdays[] = $arrCalWeekdays;
}
$conn->close();
PHP antiguo (parte modificada):
$sql = "SELECT " . $selectedLang . " FROM TranslationsMain WHERE location LIKE '%calendar weekday%' ORDER BY sortOrder, " . $selectedLang;
$result = $conn->query($sql);
while($arrCalWeekdays = $result->fetch_assoc()){
$calWeekdays[] = $arrCalWeekdays;
}
$conn->close();
Mensaje de error:
Error fatal: Llamar a una función miembro fetch_assoc () en un objeto que no es en /homepages/21/d580042014/htdocs/myform.php en la línea 21
Muchas gracias de antemano.