Не функционирует консультация, не обнаруживает буквы

Я стараюсь делать консультацию в PHP и MYSQL, но эта я не функционирует,

'grado' это число, например 2. Если я реализую консультацию только с 'grado' если оно функционирует, но если я пытаюсь с 'grupo' что является буквой, например B, не функционирует, оно как будто он не обнаруживал буквы алфавита.

$grado=$_GET['grado']; 
$grupo=$_GET['grupo']; 
$sql = "* FROM usuarios WHERE grado = $grado  AND grupo = $grupo";
$result = $conn->query($sql);
4
задан 09.02.2016, 17:13
3 ответа

Проблема состоит в том, что ты не убегаешь буква. Твой query был бы должен светить таким образом:

$sql = "SELECT * FROM usuarios WHERE grado = $grado  AND grupo = '$grupo'";
//---------------------------------------------------------------^------^

В любом случае, он был бы лучше, если ты выполняешь твой query готовой формы и не прямо:

$sql = "SELECT * FROM usuarios WHERE grado = ? AND grupo = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("is", $grado, $grupo);

Таким образом ты предотвращаешь проблемы вставки SQL в твоем приложении.

6
ответ дан 24.11.2019, 14:54
  • 1
    большое спасибо @Luiggi Мендоса, уже я функционирует спасибо за опору –  JESUS ESPINOSA 12.02.2016, 15:28

Тексты должны идти заключенные с простыми кавычками:

$sql = "* FROM usuarios WHERE grado = $grado AND grupo = '$grupo'";

В любом случае больше он стоит тебе убеждаться, которого так $grado, как $grupo они безопасные перед тем, как помещать их в кедровый орех в консультацию.

Есть достаточно серьезная неудача безопасности именовано SQL Injection что позволил бы выполнять случайные консультации в твоем портале.

2
ответ дан 24.11.2019, 14:54
  • 1
    Большое спасибо @eferion уже я исправил и функционируй –  JESUS ESPINOSA 12.02.2016, 15:28

Ты это попробовал, таким образом?

$grado = $_GET['grado'];
$grupo = $_GET['grupo'];

if ( isset($grado) && isset($grupo) ) {

    $sql = "* FROM usuarios WHERE grado = ".$grado."  AND grupo = ".$grupo;

    if ( $result = $conn - > query($sql) ) {
        echo 'Correcto'; // funciona....
    };

} else {
    echo 'fallo en parametros';
}
1
ответ дан 24.11.2019, 14:54
  • 1
    я попытаюсь с этой формой, но уже эта функционируя, спасибо так или иначе –  JESUS ESPINOSA 12.02.2016, 15:30