0

我希望 $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);
4

1 回答 1

1

您的代码中有两处错误:

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

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

$userhp1 = $uservit * 2.8;

您可以只return从函数中获取值。输出缓冲用于其他用途。

其次,您正在声明$userhp2 = $userhp1;,然后您既不修改$userhp1也不修改$userhp2. 你为什么不直接使用$userhp1over$userhp2而从不设置后者呢?

附带说明:mysql_*功能正在被删除并且已被弃用。请改用PDOmysqli

于 2013-04-15T13:06:20.833 回答