PHP变量返回2个不同的值?

时间:2013-04-15 12:55:50

标签: php mysql

我希望$ userhp1打印到屏幕,并且还保存到分配的sql表。这很好,但它们都返回不同的结果。反正有没有让它们返回相同的值?

ob_start();
vitality(); //runs vitality function
$uservit = ob_get_contents(); // stores result on $uservit
ob_end_clean();
echo "-Vitality:"; 
echo "$uservit<br />";// Prints vitality
$userhp1 = $uservit * 2.8; // multiplys vitality too create HP
$userhp2 = $userhp1;

echo "-HP From vit:";
echo "$userhp2"; // prints hp

$con=mysqli_connect("localhost", "***", "***", "***");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"UPDATE users SET hp=$userhp2 
WHERE id='1'");
mysqli_close($con);

1 个答案:

答案 0 :(得分:1)

您的代码有两个问题:

ob_start();
vitality();
$uservit = ob_get_contents();

在这里,您似乎正在使用ob_*函数系列从函数返回值。 ob_get_contents将返回一个字符串,你似乎对此并不高兴,因为你将它用作整数:

$userhp1 = $uservit * 2.8;

您只需return该函数的值即可。输出缓冲用于其他事情。

其次,您宣布$userhp2 = $userhp1;,然后您不要同时修改$userhp1$userhp2。为什么不在$userhp1上使用$userhp2而不是首先设置后者?

注意:mysql_*函数正在被删除,并且已被弃用。请改用PDOmysqli