Php Mysqli查询中出错&;行数
我的代码中有两个bug,但我不明白为什么。。。我有一个类似的代码,它准备正确。。。我的代码是下一个:Php Mysqli查询中出错&;行数,php,mysqli,Php,Mysqli,我的代码中有两个bug,但我不明白为什么。。。我有一个类似的代码,它准备正确。。。我的代码是下一个: if (isset($_POST['buscandoEducateca'])) { //get thevariables $buscarEducateca = $_POST['buscarEducateca']; // input text from the form $tipoBusquedaEducateca = $_POST['
if (isset($_POST['buscandoEducateca'])) {
//get thevariables
$buscarEducateca = $_POST['buscarEducateca']; // input text from the form
$tipoBusquedaEducateca = $_POST['tipoBusqueda']; //select from the form
//Start the query
$consultarEducateca = "SELECT '$tipoBusquedaEducateca' FROM AP1_2_tabla_clientes_Consulta WHERE '$tipoBusquedaEducateca'='$buscarEducateca'";
$resultadoEducateca = mysqli_query($mysqli, $consultarEducateca); //HERE IS ONE WRONG mysqli_query() expects parameter 1 to be mysqli, null given
$numeroEducateca = 0;
$ray2 = mysqli_num_rows($resultadoEducateca); // HERE IS THE OTHER WRONG mysqli_num_rows() expects parameter 1 to be mysqli_result, null given
if ($ray2 > 0) {
while($rowNumeroEducateca = $resultadoEducateca->fetch_array(MYSQLI_ASSOC)) {
echo "<tr><td width=\"25%\"><font face=\"verdana\">" .
$rowNumeroEducateca["Nombre"] . "</font></td>";
[..more..]
$numeroEducateca++;
}
echo "<tr><td colspan=\"15\"><font face=\"verdana\"><b>Número: " . $numeroEducateca .
"</b></font></td></tr>";
mysqli_free_result($resultadoEducateca);
} else {
echo "No se han encontrado filas, nada a imprimir."; // if there aren't something tell me didn't found rows or anything to print, when i know that there are.
}
}
if(isset($\u POST['buscandoEducateca'])){
//获取变量
$buscarEducateca=$\u POST['buscarEducateca'];//从表单中输入文本
$tipoBusquedaEducateca=$\u POST['tipoBusqueda'];//从表单中选择
//启动查询
$consultarEducateca=“从AP1\u 2\u tabla\u clients\u Consulta中选择“$tipoBusquedaEducateca”,其中“$tipoBusquedaEducateca”=“$buscarEducateca”;
$resultadoEducateca=mysqli_query($mysqli,$consultarEducateca);//这里有一个错误,mysqli_query()期望参数1为mysqli,如果给定null
$numeroEducateca=0;
$ray2=mysqli_num_rows($resultadoEducateca);//这里是另一个错误的mysqli_num_rows()期望参数1为mysqli_result,给定null
如果($ray2>0){
while($rowNumeroEducateca=$resultadoEducateca->fetch_数组(MYSQLI_ASSOC)){
“回声”。
$rowNumeroEducateca[“Nombre”]。“”;
[…更多]
$numerioeducateca++;
}
echo“Número:”.$numeroEducateca。
"";
mysqli_免费_结果($resultadoEducateca);
}否则{
echo“No se han encontrado filas,nada a imprimir.”;//如果没有什么,告诉我没有找到要打印的行或任何东西,当我知道有时。
}
}
还告诉我没有找到要打印的行或任何内容
谢谢,对不起我的英语 $mysqli要先声明。应该是这样的
$mysqli = mysqli_connect("yourhost","username","password","dbname");
对于这种情况,您应该尝试(至少)用英语命名变量。让你的代码对几乎所有人都可读,如果你不得不为了添加、修复(或类似的东西)而放弃它,你不必从头开始。为什么@DasSaffe?只要变量名可以在这里匹配,就没有任何问题。表名不能用单引号引起来
SELECT$tipoBusquedaEducateca
虽然可能需要反勾号SELECT`$tipoBusquedaEducateca`
也其中`$tipoBusquedaEducateca`='$buscarEducateca'
请接下去,存在一个必须修复的SQL注入漏洞。看见至少您必须调用$buscarEducateca=mysqli\u real\u escape\u string($mysqli,$\u POST['tipoBusqueda')代码>但更好的是开始学习根据链接中的示例使用prepare()/execute()
question@JayBlanchard首先,保持编码准则始终是一个好的实践。您还可以问“如果后面只有一个命令,为什么要在if
后面设置花括号”或“为什么要使用驼峰式大小写,甚至是要使用代码?”