【问题标题】:How to put php variable in an sql query如何将php变量放在sql查询中
【发布时间】:2016-04-24 19:17:21
【问题描述】:

这是我的代码:

<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
          <a class="navbar-brand" href="#">WebSiteName</a>
        </div>

        <ul class="nav navbar-nav">
          <li class="active"><a href="#">Home</a></li>

          <?php
               $dbconn= new PDO('sqlite:negozio.db');


          $sqlcate = "SELECT * FROM categoria";
          foreach($dbconn->query($sqlcate) as $row) { ?>
          <li class="dropdown"> 
            <a class="dropdown-toggle" data-toggle="dropdown" href="#"><?php echo $row['des_categoria']; ?> <span class="caret"></span></a>

            <ul class="dropdown-menu">
              <?php 
                $sqltipocate = "SELECT tipo.des_tipo FROM tipo, categoria, tipo_cate WHERE tipo_cate.id_cate = categoria.id_categoria AND tipo_cate.id_tipo = tipo.id_tipo AND tipo_cate.id_categoria = " . $row['id_categoria'] . " "" "; 

              foreach($dbconn->query($sqltipocate) as $row1) { ?>

              <li><a href="#"><?php echo $row1['des_tipo']; ?></a></li>
            <?php } ?>  
          </ul>
      </li>
      <?php } ?>

        </ul>
  </div>
</nav>

一切正常,直到$sqltipocate blabla...

这个错误总是出现:

语法错误,意外的 T_CONSTANT_ENCAPSED_STRING

有人可以帮我吗?

【问题讨论】:

  • @Anant 为什么不添加这个作为答案?
  • @Anant 但其他人可能会看到它并且它可以帮助他们,因此他们可以投票并且您会获得更多声誉,或者我想这不再是 10K 代表的动力?
  • @Anant 好吧,显然这就是我所做的(没有意识到它已经作为你的评论出现了),事实上我得到的只是反对票,所以我删除了它......好吧,让我移动在...
  • @Anant 没有难过的感觉,伙计,这只是一个问题,还有很多要回答的... ;) 享受吧!

标签: php html sql foreach navbar


【解决方案1】:

这是先前答案中所考虑的串联问题。我可以添加一些东西可能会让你的生活更轻松。是sprintf

您的 sql 查询字符串将是 sprintfformat 参数,如下所示:

            $sqltipocate = sprintf("SELECT tipo.des_tipo FROM tipo, categoria, tipo_cate WHERE tipo_cate.id_cate = categoria.id_categoria AND tipo_cate.id_tipo = tipo.id_tipo AND tipo_cate.id_categoria = %d", $row['id_categoria']); 

【讨论】:

    【解决方案2】:

    使用花括号。

    例子:

    $id = 1;
    $sql = "SELECT * FROM something WHERE id = {$id}";
    
    echo $sql;
    //SELECT * FROM something WHERE id = 1
    

    代码链接:http://codepad.org/V9QasGHH

    【讨论】:

      【解决方案3】:

      将您的 $row['id_categoria'] 存储在变量中

      $id = $row['id_categoria'];

      然后将 $id 放入查询中,例如:

      $sqltipocate = "从tipo、categoria、tipo_cate 中选择tipo.des_tipo,其中tipo_cate.id_cate = categoria.id_categoria AND tipo_cate.id_tipo = tipo.id_tipo AND tipo_cate.id_categoria = '".$id."'";

      看到这个tipo_cate.id_categoria = ' " $id " '

      【讨论】:

        猜你喜欢
        • 2021-04-28
        • 2015-11-14
        • 2015-04-12
        • 1970-01-01
        • 1970-01-01
        • 2019-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多