我正在尝试在我的sql数据库上进行搜索,但它不会返回任何内容。当我使用var_dump
时,它给了我“string(0)”“”我的PHP代码似乎没问题,任何人都可以帮我搞清楚吗?
代码:
的functions.php:
function buscarCarros($pConexao, $nome){
$carro = array();
$query = "SELECT nome FROM carros WHERE nome = ?";
if ($stmt = mysqli_prepare($pConexao, $query)) {
mysqli_stmt_bind_param($stmt, "s", $nome);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $nomeResultado);
while (mysqli_stmt_fetch($stmt)) {
$carro[] = $nomeResultado;
}
mysqli_stmt_close($stmt);
}
return $carro;
}
result_pesquisa.php:
<?php
include('header.php');
include_once('menu.php');
include_once('conecta.php');
include_once('functions.php');
$nome = $_REQUEST['pesquisas'];
$carro = buscarCarros($conexao, $nome);
foreach ($carro as $carros) {
echo $carros['nome'];
}
?>
和搜索框,menu.php:
<nav class="twelve columns">
<ul class="menu">
<li class="menu-item"><a href="index.php">Home</a></li>
<li class="menu-item"><a href="comprar.php">Comprar</a></li>
<li class="menu-item"><a href="">Vender</a></li>
<li class="menu-item"><a href="">Contato</a></li>
</ul>
<form id="searchbox" action="result_pesquisa.php" method="POST">
<input type="text" class="search-top remove-bottom" name="pesquisas" placeholder="Qual carro você procura?">
<!-- <a href="javascript:document.getElementById('searchbox').submit();"> -->
<a href="result_pesquisa.php"><span class="icon-top icon-search"></span></a>
</form>
</nav>
答案 0 :(得分:0)
由于我没有足够的声誉尚未发表评论,我将在此处写下我的建议。
SQL对我来说似乎有点奇怪。 SELECT nome FROM carros WHERE nome = ?
。对我来说,你似乎正在选择你唯一知道的东西。
我要尝试的另一件事是使用$ _POST超级全局而不是$ _REQUEST全局,因为后者在启动每个请求时受PHP影响。 Documentation here
PHP本身看起来很好(很高兴看到有人使用预处理语句......很棒!)并且HTML根据HTML validator有效,假设您要将doctype和字符编码声明为UTF-8。