得到'数组'或'资源ID#5'

时间:2016-09-23 05:20:30

标签: php mysql database

所以,我希望得到一个变量列。

我尝试了2种方法

mysql_querymysql_fetch_array

mysql_query我得到Resource id #5

mysql_fetch_array我得到array

是否有人知道如何解决这个问题?

$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);

2 个答案:

答案 0 :(得分:0)

假设您的列名为'名字'。然后你可以用这个

$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);
$firstname = $userRow[0]['firstname'];
echo $firstname;

如果在结果中获得多行,则可以循环获取所有行。

答案 1 :(得分:0)

我的理解是你想从一个表中调用列名,其中该列的值等于一个变量?如果是的话......

我能想到解决这个问题的最简单方法是在所有表中搜索基于列查找的值并返回值。此功能应该有助于完成此任务:

    function columnToVariable($conn, $table, $variable){//SET PARAMETERS (CONNECTION STRING, TABLE NAME, VARIABLE SEARCH)
      $sql = "SHOW COLUMNS FROM ".mysqli_real_escape_string($conn, $table).";"; // SQL STATEMENT
      $result = $conn->query($sql); // RESULTS OF ALL ROWS
      $field = array(); // ARRAY WITH COLUMNS
      if($result->num_rows > 0){ // CHECK IF RESULTS FOUND
        while($row = $result->fetch_assoc()){ // SET RESULTS TO ARRAY
          array_push($field, $row['Field']); // APPEND ARRAY WITH FIELD NAME
        }
      }
      foreach($field as $return){ // ITERATE THROUGH FIELD NAMES
        $sql = "SELECT * FROM ".mysqli_real_escape_string($conn, $table)." WHERE ".mysqli_real_escape_string($conn, $return)." = '".mysqli_real_escape_string($conn, $variable)."';"; // SQL STRING
        $result = $conn->query($sql); // QUERY RESULTS
        if($result->num_rows > 0){ // IF FOUND, RETURN VALUE
          return $return; // RETURN VALUE
        }
      }  
    }