var_dump()给我NULL和bool(false)

时间:2017-08-30 16:37:05

标签: php mysql sql

我正在研究一个php彩票脚本,但我似乎遇到了一些问题? 当我做 var_dump($ choose)返回“bool(false)” 和 var_dump($ choose ['username'])返回“NULL”

有人有任何想法吗? 这是“$ choose”:

$choose = mysql_query("SELECT username FROM `lotto` WHERE winner = '1'");

我的桌面名称是乐透,用户名和获胜者都作为“lotto”中的列存在

这是代码的完整摘要:

$choose = mysql_query("SELECT username FROM `lotto` WHERE winner = '1'");
$chosen = mysql_fetch_assoc($choose);
 
  if ($choose >= $choose)
	  {
	  
	mysql_query("INSERT INTO lotto_winners (username, time, winning_number) VALUES ('".$choose['username']."', '1', '".$winner."')");
}
else 
{
	echo 'FAILED: No Winner to Choose From';
}
  


echo
'<div>'.$winner.'</div>';
echo
'<div>'.$choose.'</div>';

 
var_dump($chosen);
var_dump($chosen['username']);

并且在任何人说什么之前:我已经知道mysql_ *已被弃用。所以,你不需要告诉我。

2 个答案:

答案 0 :(得分:0)

来自PHP Doc的

  

转换为布尔值

     

要将值显式转换为boolean,请使用(bool)或(boolean)   管型。但是,在大多数情况下,演员是不必要的,因为一个值   如果是操作员,功能或控制,将自动转换   结构需要一个布尔参数。

     

另见Type Juggling。

     

转换为布尔值时,以下值被视为FALSE:

  • 布尔值FALSE本身
  • 整数0(零)
  • 浮点数0.0(零)
  • 空字符串,字符串“0”
  • 包含零元素的数组 Your Case
  • 特殊类型NULL(包括未设置的变量)
  • 从空
  • 创建的SimpleXML对象

http://php.net/manual/en/language.types.boolean.php

然后$ choose为null,因为没有返回任何行 如果获胜者列数据类型为数字,请尝试使用

 $choose "SELECT username FROM `lotto` WHERE winner = 1"

或者如果您使用枚举,请尝试过滤与1

相关联的值
   $choose "SELECT username FROM `lotto` WHERE winner = 'MY_VALUE_FOR_1'"

答案 1 :(得分:-1)

你的查询无效,这就是为什么你得到bool(假)

&#xA;&#xA;

更改

&#xA;&#xA;
  “SELECT username FROM`lotto` WHERE winner ='1'”&#xA;  
&#xA;&#xA;

to

&#xA;&#xA;
 “SELECT username FROM lotto WHERE winner ='1'”&#xA;  
&#xA;