Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP上不显示数据,但在工作台上SQL是正确的_Php_Mysql - Fatal编程技术网

在PHP上不显示数据,但在工作台上SQL是正确的

在PHP上不显示数据,但在工作台上SQL是正确的,php,mysql,Php,Mysql,如果我在workbench上运行sql查询,我可以看到数据。 但是在PHP上什么都没有。 我发现这部分不行 回声。$title1。; 回声。$content1。; 回声。$answer1。; 有人知道怎么解决吗 $qtitle =$_GET['id']; $sql ="select Q1.title, Q1.content, Q1.answer from questionset_question as Q2";

如果我在workbench上运行sql查询,我可以看到数据。 但是在PHP上什么都没有。 我发现这部分不行

回声。$title1。; 回声。$content1。; 回声。$answer1。; 有人知道怎么解决吗

                  $qtitle =$_GET['id'];

                  $sql ="select Q1.title, Q1.content, Q1.answer from questionset_question as Q2";
                  $sql .=" inner join question as Q1 on Q1.question_id=Q2.question_id inner join questionset as Q3";
                  $sql .=" on Q3.questionset_id=Q2.questionset_id where Q3.title='$qtitle'";

                  if ($result = $db->query($sql)) { 
                      while ($row = $result->fetch_assoc()) {   
                        $title1=$row['Q1.title'];
                        $content1=$row['Q1.content'];
                        $answer1=$row['Q1.answer'];

                        echo '<ul><li>'.$title1.'</li>';
                        echo '<li>'.$content1.'</li>';   
                        echo '<li>'.$answer1.'</li></ul>'; 
                      }

                      $result->free();
                    }
                    else {
                      echo "no result";
                    }
你能这样试试吗

while ($row = $result->fetch_assoc()) {   
 $title1=$row['title'];
 $content1=$row['content'];
 $answer1=$row['answer']

删除Q1表名。因为pdo中的结果返回时没有表名。MySQL工作台可以用表名列出列名

在PHP或其他web应用程序中,最好先查看变量的内容,然后再继续显示数据

在这里,我将使用print_r函数查看$result中包含的内容

if ($result = $db->query($sql)) { 

    //check the value in $result.. used only for debugging
    print_r($result);
    exit('debugging');

     while ($row = $result->fetch_assoc()) {   
         $title1 = $row['Q1.title'];
         $content1 = $row['Q1.content'];
         $answer1 = $row['Q1.answer'];
         ...
     }

你做了什么调试?您在URL中为id参数使用的查询参数值是什么?您的PHP脚本与MySQL工作台查看的数据库是否相同?您是否看不到任何结果或其他内容,或者根本看不到任何内容?请学习使用参数化查询。你的程序易受SQL注入攻击。我添加了echo“test”;在while循环的最后,我可以看到“test”两次,因为MySQL中有两行数据。由于您的PHP配置,您错过了有价值的错误消息。看到漂亮的斑点。仅供参考,OP使用的是MySQLi,而不是PDO。尽管Stick bit表示正确,但问题/答案是相同的。请对您的securit使用参数化查询。