所以我在PHP上有一个带有2个sql查询的函数,问题是第二个它没有工作,我不知道为什么。
<?php
include('../dbFunctions.php');
function getName($id) {
$connection = connectDB();
$sql = mysqli_prepare($connection, "SELECT * FROM lugar_concreto WHERE idLugar = ?");
mysqli_stmt_bind_param($sql, "s", $id);
$query = $sql->execute();
if(!$query)
die();
$result = $sql->store_result();
$realresult = $sql->bind_result($id, $param1, $param2, $param3);
$sql->fetch();
if($sql->num_rows() == 0) {
$sql2 = mysqli_prepare($connection, "SELECT * FROM lugar_transporte WHERE idLugarTte = ?");
mysqli_stmt_bind_param($sql2, "s", $id);
$query2 = $sql2->execute();
if(!$query2)
die();
$result2 = $sql2->store_result();
$realresult2 = $sql2->bind_result($id, $param1, $param2, $param3);
$sql2->fetch();
$rawdata = array();
$correct = $query2;
$rawdata['param1'] = utf8_encode($param1);
if(utf8_encode($param2) != null)
$rawdata['param2'] = utf8_encode($param2);
$rawdata['param3'] = utf8_encode($param3);
$rawdata['correct'] = $correct;
} else {
$rawdata = array();
$correct = $query;
$rawdata['param1'] = utf8_encode($param1);
$rawdata['param2'] = utf8_encode($param2);
$rawdata['param3'] = utf8_encode($param3);
$rawdata['correct'] = $correct;
}
disconnectDB($connection);
return $rawdata;
}
?>
我准备并执行一个查询,如果它返回空结果(0行),那么我执行另一个查询,我知道它现在是清晰有效的方式,但它应该工作我认为。
问题在于,我使用了var_dump()
与大号内的变量,如$query
,$result
,$realresult
,并且所有变回{{1}但是bool(true)
变量$sql->fetch();
有0个num_rows之后,我不知道为什么。
我使用php 5我不知道是否与此有关。
如果你们中任何人知道更好的方法,请告诉我,任何帮助都会被贬低!
编辑:这就是带有$sql
的变种$sql2
: