繁体   English   中英

在SQL查询中使用PHP变量变量

[英]Using PHP variable variables in SQL query

抱歉,这个问题是“您可以解决”这个问题,但是这段代码使我感到困惑了一段时间。

我基本上是在创建一个包含一排行和一列的表,并且在每个表中我都有一个稍有变化的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>';

谢谢,斯坦尼

假设我解释了这种权利,则[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>';

首先,不能像在字符串上串联那样附加数组索引[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>';

暂无
暂无

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

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