28

我正在尝试从数据库中选择一个值并使用 SELECT 将其显示给用户。但是我不断收到此错误:

Notice: Array to string conversion in (pathname) on line 36.

我认为这@mysql_fetch_assoc();会解决这个问题,但我仍然收到通知。这是我收到错误的代码部分:

  {
  $loggedin = 1;

  $get = @mysql_query("SELECT money FROM players WHERE username = 
 '$_SESSION[username]'");
  $money = @mysql_fetch_assoc($get);

  echo '<p id= "status">'.$_SESSION['username'].'<br>
  Money: '.$money.'.
  </p>';
  }

我究竟做错了什么?我对 PHP 很陌生。

4

6 回答 6

18

问题是 $money 是一个数组,您将其视为字符串或可以轻松转换为字符串的变量。你应该这样说:

 '.... Money:'.$money['money']
于 2012-07-21T23:51:20.143 回答
1

更简单:

$get = @mysql_query("SELECT money FROM players WHERE username = '" . $_SESSION['username'] . "'");

请注意$_SESSION参考中用户名周围的引号。

于 2016-08-18T20:14:14.270 回答
1

您会收到此通知的原因之一:数组到字符串的转换...是您正在组合数组组。例如,整理出几个名字和姓氏。

要正确回显数组的元素,您可以使用该函数,implode(separator, array) 例如:

implode(' ', $var)

结果:

first name[1], last name[1]
first name[2], last name[2]

来自W3C的更多示例。

于 2019-04-07T03:48:01.647 回答
0

将 $_SESSION['username'] 的值存储到 $username 等变量中

$username=$_SESSION['username'];

$get = @mysql_query("SELECT money FROM players WHERE username = 
 '$username'");

它应该工作!

于 2015-09-15T01:29:59.177 回答
0

mysql_fetch_assoc 返回一个数组,所以你不能回显一个数组,需要 print_r() 否则特定的字符串 $money['money']。

于 2017-04-28T06:59:43.440 回答
0

您不能回显数组。必须改用 print_r。

<?php
$result = $conn->query("Select * from tbl");
$row = $result->fetch_assoc();
print_r ($row);
?>
于 2018-12-14T17:03:20.590 回答