注意:数组转换为字符串

时间:2012-07-21 23:48:17

标签: php mysql sql-server arrays select

我正在尝试从数据库中选择一个值,并使用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的新手。

6 个答案:

答案 0 :(得分:17)

问题是$ money是一个数组,你将它视为一个字符串或变量,可以很容易地转换为字符串。你应该说:

 '.... Money:'.$money['money']

答案 1 :(得分:1)

更简单:

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

请注意 $ _ SESSION 引用中用户名周围的引号。

答案 2 :(得分:0)

将$ _SESSION [&#39;用户名&#39;]的值存储到变量中,例如$ username

$username=$_SESSION['username'];

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

它应该有效!

答案 3 :(得分:0)

mysql_fetch_assoc返回一个数组,所以你不能回显一个数组,需要print_r()否则特别是字符串$ money [&#39; money&#39;]。

答案 4 :(得分:0)

您无法回显数组。 必须改用print_r。

<?php
$result = $conn->query("Select * from tbl");
$row = $result->fetch_assoc();
print_r ($row);
?>

答案 5 :(得分:0)

您将收到此通知的原因之一:在…中将数组转换为字符串是您正在组合数组组。例如,挑选出几个名字和姓氏。

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

implode(' ', $var)

结果:

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

来自W3C的更多示例。