您好我目前在PHP中使用预编译语句的if语句有问题,无论我在检查get_result时输入的是什么,我的语句总是正确的。老实说,我不知道我在做什么,我对php和预备语句的概念很新。
$searchtext= $_POST['search-box'];
$sqlName= $connect->prepare("SELECT * FROM SearchPG WHERE PGName LIKE ? ");
$sqlName->bind_param("s", $searchtext);
$sqlName->execute();
$NameResult = $sqlName->get_result();
$sqltext= $connect->prepare("SELECT * FROM SearchPG WHERE PGKeywords LIKE ? ");
$sqltext->bind_param("s", $searchtext);
$sqltext->execute();
$TextResult = $sqltext->get_result();
if($NameResult->num_rows > 0 || $TextResult->num_rows > 0){
if($NameResult->num_rows > 0 ){
echo "made it into sqlname";
while($rs = $NameResult->fetch_assoc()){
echo "name result";
?>
<div class="row resultcontent">
<a href="<?php echo $rs['PGUrl'];?>">
<div class="col-sm-8 searchRsltCont">
<img src="<?php echo $rs['PGImgUrl'];?>" class="searchRsltimg" alt="search result image" />
<div class="contshading">
</div>
</div>
<div class="col-sm-4 searchRslttxt">
<h1><?php echo "name".$rs['PGName'];?></h1>
</div>
</a>
</div>
<?php
$count++;
}
}
if($count<10){
echo "exploded result";
foreach($searchbit as $value){
$temp = '%'.$value.'%';
$sqlvalue= $connect->prepare("SELECT * FROM SearchPG WHERE PGName LIKE ? OR PGKeyword LIKE ? ");
$sqlvalue->bind_param("ss", $temp, $temp);
$sqlvalue->execute();
$ValueResult = $sqlvalue->get_result();
if($ValueResult->num_rows > 0){
while($rs = $ValueResult->fetch_assoc()){
?>
<div class="row resultcontent">
<a href="<?php echo $rs['PGUrl'];?>">
<div class="col-sm-8 searchRsltCont">
<img src="<?php echo $rs['PGImgUrl'];?>" class="searchRsltimg" alt="search result image" />
<div class="contshading">
</div>
</div>
<div class="col-sm-4 searchRslttxt">
<h1><?php echo "name".$rs['PGName'];?></h1>
</div>
</a>
</div>
<?php
$count++;
}
}
}
while($rs = $TextResult->fetch_assoc()){
?>
<div class="row resultcontent">
<a href="<?php echo $rs['PGUrl'];?>">
<div class="col-sm-8 searchRsltCont">
<img src="<?php echo $rs['PGImgUrl'];?>" class="searchRsltimg" alt="search result image" />
<div class="contshading">
</div>
</div>
<div class="col-sm-4 searchRslttxt">
<h1><?php echo "name".$rs['PGName'];?></h1>
</div>
</a>
</div>
<?php
$count++;
}
}
我试过if(!$ result),if($ result-&gt; num_rows&gt; 0),if($ result-&gt; affected_rows)和其他但似乎没有工作有人知道我在做什么错
答案 0 :(得分:0)
你很有可能没有&#34;本地司机&#34; (mysqlnd)已安装,这是 OnePlayerFragment f = (OnePlayerFragment) getSupportFragmentManager().findFragmentByTag("OnePlayer");
方法所必需的。
比照http://php.net/manual/en/mysqli-stmt.get-result.php
尝试使用PDO:
get_result()
答案 1 :(得分:0)
对于任何可能不熟悉php,准备好的语句和类似问题的人,我通过在更改代码以适应store_result之后将get_result切换到store_result来解决我的问题似乎完美无缺。这是我的新代码,它仍然需要一些修复和清理,但我希望这可以帮助有需要的人。
$sqlname= $connect->prepare("SELECT PGID, PGName, PGUrl, PGImgUrl FROM SearchPG WHERE PGName LIKE ? ");
$sqlname->bind_param("s", $searchtext);
$sqlname->execute();
$sqlname->store_result();
$sqltext= $connect->prepare("SELECT PGID, PGName, PGUrl, PGImgUrl FROM SearchPG WHERE PGKeywords LIKE ? ");
$sqltext->bind_param("s", $searchtext);
$sqltext->execute();
$sqltext->store_result();
if($sqlname->num_rows > 0 || $sqltext->num_rows > 0){
if($sqlname->num_rows > 0 ){
$sqlname->bind_result($id, $name, $url, $imgurl);
while($rs = $sqlname->fetch()){
?>
<div class="row resultcontent">
<a href="<?php echo $url;?>">
<div class="col-sm-8 searchRsltCont">
<img src="<?php echo $imgurl;?>" class="searchRsltimg" alt="search result image" />
<div class="contshading">
</div>
</div>
<div class="col-sm-4 searchRslttxt">
<h1><?php echo "name".$name;?></h1>
</div>
</a>
</div>
<?php
$count++;
}
}
if($count<10){
if($words > 1){
foreach($searchbit as $value){
$temp = '%'.$value.'%';
$sqlvalue= $connect->prepare("SELECT PGID, PGName, PGUrl, PGImgUrl FROM SearchPG WHERE PGName LIKE ? OR PGKeywords LIKE ? ");
if ( false===$sqlvalue ) {
die('connect failed: ' . htmlspecialchars($sqlvalue->error));
}
$sqlvalue->bind_param("ss", $temp, $temp);
if ( false===$sqlvalue ) {
die('bind failed: ' . htmlspecialchars($sqlvalue->error));
}
$sqlvalue->execute();
if ( false===$sqlvaue ) {
die('execute() failed: ' . htmlspecialchars($sqlvalue->error));
}
$sqlvalue->store_result();
//$ValueResult = $sqlvalue->get_result();
if($sqlvalue->num_rows > 0){
$sqlvalue->bind_result($id, $name, $url, $imgurl);
while($rs = $sqlvalue->fetch()){
?>
<div class="row resultcontent">
<a href="<?php echo $url;?>">
<div class="col-sm-8 searchRsltCont">
<img src="<?php echo $imgurl;?>" class="searchRsltimg" alt="search result image" />
<div class="contshading">
</div>
</div>
<div class="col-sm-4 searchRslttxt">
<h1><?php echo "name".$name;?></h1>
</div>
</a>
</div>
<?php
$count++;
}
}
}
}
$sqltext->bind_result($id, $name, $url, $imgurl);
while($rs = $sqltext->fetch()){
echo "made it into the loop";
?>
<div class="row resultcontent">
<a href="<?php echo $url;?>">
<div class="col-sm-8 searchRsltCont">
<img src="<?php echo $imgurl;?>" class="searchRsltimg" alt="search result image" />
<div class="contshading">
</div>
</div>
<div class="col-sm-4 searchRslttxt">
<h1><?php echo "name".$name;?></h1>
</div>
</a>
</div>
<?php
$count++;
}
}
}