如何使用表名作为变量进行查询

时间:2014-05-20 20:49:10

标签: php mysql

function observerCount($memberID)
{
  connection("asd");
  $sql = mysql_query("SELECT * FROM $memberID");
  echo mysql_num_rows($sql);
}


$memberID return "1" as string.

Error is : mysql_num_rows() expects parameter 1 to be resource, boolean given in ...(echo phrase)

我正在尝试通过在查询中使用变量作为表名来查询表。我做错的方式还是我做了另一个错?

编辑:

function observerCount($memberID)
{
  connection("asd");
  $query = "SELECT * FROM `". $memberID ."`;";
  $sql = mysql_query($query);
  echo mysql_num_rows($sql);
}

这很有效。

3 个答案:

答案 0 :(得分:3)

function observerCount($memberID)
{
  connection("asd");
  $query = "SELECT * FROM `". $memberID ."`;";
  $sql = mysql_query($query);
  echo mysql_num_rows($sql);
}

答案 1 :(得分:0)

您的问题很可能是您的查询失败。因此,将false(布尔值)替换为结果的资源。

请修改第$sql = mysql_query("SELECT * FROM $memberID");行并将其更改为$sql = mysql_query("SELECT * FROM $memberID") or die mysql_error();,以便了解错误。

答案 2 :(得分:-1)

您的表格名称不能以数字开头。我假设您要计算用户的行数。也许这至少会引导您找到解决方案:

$sql = mysql_query("SELECT * FROM members WHERE id = $memberID");

(你应该阅读有关准备好的陈述)