PHP中的SQL搜索查询无法正常工作

时间:2017-11-23 11:55:14

标签: php sql html5 mysql-workbench

有人可以解释为什么这不起作用吗?我认为这部分是错误的,但我不知道如何解决它。

$stmt = $pdo->prepare("SELECT * FROM locatie WHERE gebouw LIKE '%?%' 
AND ruimte LIKE '%?%'");
    $stmt->execute(array($gebouw_zoeken, $ruimte_zoeken));

问题是它没有显示查询结果。也没有任何错误代码。

    <table>
        <form action="index.php" method="post">

            Locatie zoeken:<br>
            <input placeholder="Gebouwnaam" type="text" name="gebouw_zoeken" 
>
            <br>
            <input placeholder="Ruimtenaam" type="text" name="ruimte_zoeken" 
>
            <br><br>
            <input  type="submit" name="submit_zoeken" value="Locatie 
zoeken" ><br>
        </form>
    </table><br><br>


    <?php
    if (isset($_POST["submit_zoeken"])) {
        $gebouw_zoeken = $_POST["gebouw_zoeken"];
        $ruimte_zoeken = $_POST["ruimte_zoeken"];
        $stmt = $pdo->prepare("SELECT * FROM locatie WHERE gebouw LIKE '%?%' 
AND ruimte LIKE '%?%'");
        $stmt->execute(array($gebouw_zoeken, $ruimte_zoeken));
        ?>

3 个答案:

答案 0 :(得分:3)

您需要删除引号并将E:\OneDrive\Software\Projetos\php\public_html\Locale\en_UK\LC_MESSAGES\messages.mo E:\OneDrive\Software\Projetos\php\public_html\Locale\pt_BR\LC_MESSAGES\messages.mo 放在%语句中绑定的字符串周围:

execute()

答案 1 :(得分:1)

您是否在执行后实际声明了一个变量来保存数组信息?

$data = $stmt->fetchAll();
print_r($data);

答案 2 :(得分:-2)

我认为Bind参数问题为

$Stmt = $pdo->prepare("SELECT * FROM locatie WHERE gebouw LIKE '%?%' 
AND ruimte LIKE '%?%'");

$stmt->bind_parm("ii",$gebouw_zoeken, $ruimte_zoeken);

$stmt->execute();

参考:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php