dsj83686 2015-11-10 10:24
浏览 32
已采纳

在PHP中的mysql查询中的内联变量无法正常工作

I have following php code,

<?php
    $subject_set = mysqli_query($db_link, 'SELECT * FROM subjects');

    if(!$subject_set){
        die("Database subjects query failed: ".mysql_error());
    }

    while ($subject=mysqli_fetch_array($subject_set)) {
        echo "<li>{$subject["menu_name"]}</li>";
            $page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id= {$subject["id"]}');
            // $page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id='.$subject["id"]);

            if(!$page_set){
                die("Database pages query failed: ".mysql_error());
            }

            echo "<ul class=\"pages\">";

            while ($page=mysqli_fetch_array($page_set)) {
                echo "<li>{$page["menu_name"]}</li>";
            }

            echo "</ul>";

        }
    ?>

when I run this code it gives me an error when I getting 'page_set' values.In line $page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id= {$subject["id"]}'); But I used commented line instead of the above line code works fine. Also mysql_error() doesn't show me the error.

  • 写回答

3条回答 默认 最新

  • doujie4344 2015-11-10 10:28
    关注

    Change

    $page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id= {$subject["id"]}');
    

    to

    $page_set = mysqli_query($db_link, "SELECT * FROM pages WHERE subject_id= {$subject["id"]}");
    

    because PHP variables won't be processed unless they are in double-quoted strings.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?