php检查if语句中的预处理语句

时间:2015-07-18 20:35:12

标签: php html search-engine

您好我目前在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)和其他但似乎没有工作有人知道我在做什么错

2 个答案:

答案 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++;
                            }


                        }
                    }