SQL请求取决于下拉菜单

时间:2015-05-04 12:14:07

标签: php html mysql

我遇到了一个小问题,现在几个小时我一直在讨论下拉菜单。 因此,我有一个下拉列表,由于SQL请求而填充,现在我想获得选择的答案来执行另一个SQL请求,但我遇到了麻烦...... 这是我的代码。

<?php
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=PSF;charset=utf8','user','pass');
    }
    catch (Exception $e)
    {
        die('Erreur : ' . $e->getMessage());
    }

    echo 'poil';
    $choiceMicroscope = $bdd->query('select table_name from information_schema.tables where table_schema="PSF"');

?>
    <form method="POST" action="test3.php">
    <select name="Microscope">


    <?php

    while($choice = $choiceMicroscope->fetch())
    {
        ?>
        <option value="<?php echo $choice['table_name']; ?>"><?php echo $choice['table_name']; ?></option>
        <?php
    }
    ?>
    </select>
    <input type="Submit" value="Send" name="Send">
    </form>

    <?php

    if(isset($_POST['Microscope']) and isset($_POST['Send']))
        $nom=$_POST['Microscope'];
    else
        $nom="";

    //On vérifie si les champs sont vides
    if(empty($nom))
        echo '<font color = "red">The Microscope field should not be empty !</font>';
    else
    {
        echo $nom;
        echo "là";
        $test = $bdd->query('Select * from ".$nom." where ObjMagn="40x" and NumberBead = 2;');
        echo "prout";
        echo gettype($test);
        $test2 = $test->fetchAll();
        echo "ici";
        print_r($test2);
        echo $_POST['Microscope'];
    }
    ?>

当我测试我的请求时,我得到了

AxioObserverlàbool(false) proutboolean

这意味着我的请求无效...

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您的查询并非如您所愿。您正在使用单引号,因此变量不会被连接。

409

这也可能会失败。

  1. 为什么要让用户选择表格?
  2. 您也可以使用此方法进行SQL注入。
  3. 如果值为空,则默认值为空,这将使查询失败。