简体   繁体   English

准备好的语句不返回结果

[英]Prepared statements doesn't return results

I trying to do all my querys with prepared statements but is new for me and I have some troubles. 我试图用准备好的语句进行所有查询,但是这对我来说是新手,而且我遇到了一些麻烦。 This is first query and doesn't echo result from table. 这是第一个查询,不会回显表的结果。 This is what I've done so far. 到目前为止,这是我所做的。 May be is realy newbie question but is something completely new for me. 可能是真的新手问题,但对我来说是全新的东西。

if(isset($_GET['joke_id'])){
            $joke_id = $_GET['joke_id'];

            $qry = $con->prepare("SELECT * FROM joke WHERE joke_cat = ?");
            $qry->bind_param('i', $joke_id);
            $qry->execute();
            $result = $qry->get_result();
            $result->fetch_array();

    $result = mysqli_query($con, $qry) or die("Query failed: " . mysqli_errno($con));*/
            $line = mysqli_fetch_array($result, MYSQL_BOTH);

            if (!$line) echo '';
            $previd = -1;
            $currid = $line[0];
            if (isset($_GET['id'])) {
                $previous_ids = array();
                do {
                    $previous_ids[] = $line[0];
                    $currid = $line[0];
                    if ($currid == $_GET['id']) break;
                    $previd = end($previous_ids);
                    $line = mysqli_fetch_array($result, MYSQL_BOTH);
                } while ($line);
            }
   if ($line) {
                echo "<div id=\"box\">";
                echo nl2br($line['text']) . "<br /><br />";
                echo "<div id=\"share\"><span class='st_facebook' displayText='Facebook'></span>
                <span class='st_twitter' displayText='Tweet'></span>
                <span class='st_googleplus' displayText='Google +'></span></div>";
                echo '<br /><br /><br />';
                echo "</div>";

            }
            else echo '<p>Empty category</p><br/>';

This is what I use right now before to try PDO and it's work with no problems. 这就是我现在尝试PDO之前使用的方法,它可以正常工作。

qry = "SELECT * FROM joke WHERE joke_cat = '$joke_id'";
            $result = mysqli_query($con, $qry) or die("Query failed: " . mysqli_errno($con));

$_GET['joke_id'] and $_GET['joke_cat'] is set ? $_GET['joke_id']$_GET['joke_cat']吗?

or try 或尝试

$qry = $con->prepare("SELECT * FROM joke WHERE joke_cat =:joke_cat");
$qry->bindParam(':joke_cat', $_GET['joke_cat'], PDO::PARAM_STR);
$qry->execute();
$result = $qry->fetchAll();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM