将php变量插入sql语句

时间:2010-11-27 13:35:51

标签: php mysql

更改问题,因为我有更好的信息。

以下查询

function gamesWaiting($join, $type, $status, $u)
{
    global $database;
    $q = "SELECT g.home_user, g.away_user, g.home_score, g.home_team, g.away_score, g.away_team, g.id, f.name, f.game, 
         uh.username AS home_username, ua.username AS away_username
          FROM ".TBL_FOOT_GAMES." g
          INNER JOIN ".TBL_USERS." uh ON uh.id = g.home_user
          INNER JOIN ".TBL_USERS." ua ON ua.id = g.away_user
          INNER JOIN ".$join." f ON f.id = g.leagueid
          WHERE g.type = '$type' && g.{$u}_user = '$_SESSION[id]' && g.status = '$status'";
    return mysql_query($q, $database->myConnection());
}

唯一不起作用的部分是

".$join."

我有什么想法可以让它发挥作用吗?

三江源

3 个答案:

答案 0 :(得分:0)

此查询搜索表名TBL_FOOT_FRIENDLY,而不是您的常量引用表名。 (从您的代码TBL_FOOT_FRIENDLY可能在数据库中定义为foot_friendly)

答案 1 :(得分:0)

在变量中指定常量值并将此变量传递给函数

$tbl=TBL_FOOT_FRIENDLY;
$results = $footdb->gamesWaiting($tbl, "1", "2", "away");

或删除常量周围的双引号并传递

$results = $footdb->gamesWaiting(TBL_FOOT_FRIENDLY, "1", "2", "away");

然后试试。

感谢。

答案 2 :(得分:0)

像这样写:

INNER JOIN '" . $join . "' f ON f.id = g.leagueid

请注意围绕. $join .

的双引号括起来的单引号