【问题标题】:Using PHP variable variables in SQL query在 SQL 查询中使用 PHP 变量变量
【发布时间】:2009-04-03 22:44:57
【问题描述】:

很抱歉这个问题是一个“你能解决它吗”的问题,但是这段代码让我困惑了一段时间。

我基本上是在制作一个包含一堆行和列的表,并且在每个表中我都有一个稍微变化的 SQL 查询。为了使它更容易而不是全部输入,我编写了这个脚本,但它开始变得有点复杂,所以你们中的任何人都可以设法让它正确吗?

echo '<td background="images/map/';
$tile = mysql_fetch_array(mysql_query("SELECT image FROM map WHERE horizontal = ${'mapPiece' . $mapPieceCount . [0]} AND verticle = ${'mapPiece' . $mapPieceCount . [0]}"));
echo $tile[0];
echo '.png"></td>';

谢谢,斯坦尼

【问题讨论】:

    标签: php sql variables


    【解决方案1】:

    假设我的解释是正确的,[0] 需要超出花括号:

    echo '<td background="images/map/';
    $tile = mysql_fetch_array(
              mysql_query(
                "SELECT image FROM map WHERE horizontal = ".
                ${'mapPiece' . $mapPieceCount}[0].
                " AND verticle = ".
                ${'mapPiece' . $mapPieceCount}[0]
              )
            );
    echo $tile[0]; 
    echo '.png"></td>';
    

    【讨论】:

      【解决方案2】:

      首先,您不能像在字符串上连接一样附加数组索引[0]。总体而言,如果您只添加几行以使事情更整洁,那会容易得多:

      $currentPiece = 'mapPiece' . $mapPieceCount;
      echo '<td background="images/map/';
      
      $query = 'SELECT image '.
                  'FROM map '.
                  'WHERE horizontal = '.${$currentPiece}[0].' '.
                      'AND verticle = '.${$currentPiece}[0];
      $result = mysql_query($query);
      $tile = mysql_fetch_array($result);
      
      echo $tile[0];
      echo '.png"></td>';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-18
        相关资源
        最近更新 更多