在 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 通过 SQL 查询中的 Href 链接将变量传递给弹出页面