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

Posted

技术标签:

【中文标题】在 SQL 查询中使用 PHP 变量变量【英文标题】:Using PHP variable variables in SQL query 【发布时间】: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>';

谢谢,斯坦尼

【问题讨论】:

【参考方案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>';

【讨论】:

以上是关于在 SQL 查询中使用 PHP 变量变量的主要内容,如果未能解决你的问题,请参考以下文章

使用变量的查询在 PHPMyAdmin 中有效,但在 PHP 脚本中无效

php+mysql select 变量 from

在 SQL 语句/查询中使用 jQuery 变量

PHP 通过 SQL 查询中的 Href 链接将变量传递给弹出页面

如何将日期和其他变量绑定到 php sql 查询? (MySql)

DateDiff Sql 查询不包括周末作为变量使用变量创建 > X