所以我遇到了显示查询输出的问题。我将展示我的代码并尝试解释我能做的最好的事情。
<?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
上的数字。请帮帮我这些家伙我一直在努力寻找答案,连续两天没有运气
感谢您的帮助。
答案 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>
旁注:确保输入/查询中没有空格。使用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 statements或PDO与prepared statements。