没有给出想要的输出

时间:2015-12-17 12:57:22

标签: php sql mysqli

所以我遇到了显示查询输出的问题。我将展示我的代码并尝试解释我能做的最好的事情。

<?php
    include_once('ligacao.php');
    if (mysqli_connect_errno())
    {
    echo "Falha ao conectar à Base de Dados: ".mysqli_connect_error();
    }

        $pesq = $_POST['id'];
        echo $pesq; 

        $sqlveri = "SELECT * FROM distrito WHERE iddistrito LIKE '12'";
        $result = mysql_query ($ligar,$sqlveri);
        echo $resul;
        mysqli_close ($ligar);
        ?>

我提交时唯一出现的是保留在变量$pesq上的数字。请帮帮我这些家伙我一直在努力寻找答案,连续两天没有运气

感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

未来访客请注意。

他们问题的原始结论是基于他们使用mysql_fetch_array而不使用i的原始帖子,并在将其记录到修订版之前进行了更改。

在我发布答案后,我们完全更改了代码https://stackoverflow.com/revisions/34335181/3

基于上述

的原始答案

因此,在我关闭了有关混合MySQL API的问题后,您将mysql_fetch_array更改为mysqli_fetch_array

目前还不清楚您使用哪种MySQL API进行连接。 mysql_mysqli_或PDO(不同的API不会混用)。

另外,您没有检查错误。

另外,不知道你用什么变量来连接。

这里发生的是你没有连接到你的查询,我不知道你正在使用什么变量。

因此,请根据以下内容将变量更改为您在连接文件中使用的变量:

$result = mysqli_query($connection, "SELECT ...

mysqli_query()需要连接:

在打开PHP标记后立即将错误报告添加到文件的顶部 例如  <?php error_reporting(E_ALL); ini_set('display_errors', 1);然后代码的其余部分,看它是否产生任何结果,  以及or die(mysqli_error($connection))mysqli_query()

您的HTML表单也是未知的,如果它使用的是POST方法,并且输入的确具有name属性。

I.e。:

<form method="post" action="your_handler.php">
  <input type="text" name="id">
</form>
  • 如果没有专门设置POST方法,则表单默认为GET。因此,这将触发/导致未定义的索引通知。

旁注:确保输入/查询中没有空格。使用trim()var_dump()作为附加工具。

另外,如果您正在寻找完全匹配,请不要使用LIKE,而是使用WHERE iddistrito = '$pesq'");

阅读LIKE:http://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html

如果需要进行模式匹配,可以使用通配符。

您目前的代码向SQL injection开放。使用mysqli_* with prepared statementsPDOprepared statements