1
中的查询结果我试图将可用现金的查询结果与股票价格进行比较,但它不起作用,我不明白为什么。我不明白为什么它不工作,因为他们似乎$现金和$值是有效的数字。这是给我的问题。无法比较php
if($cash < $value)
这是整个文件
<?php
//configuration
require("../includes/config.php");
//query user's portfolio
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
// Insert the stock into their portfolio
if(preg_match("/^\d+$/", $_POST["shares"])==false){
apologize("Please enter full share numbers");
}else{
$cash = query("SELECT cash FROM users WHERE id = ?", $_SESSION["id"]);
// lookup stock
$stock = lookup($_POST["symbol"]);
// calculate total sale value (stock's price * shares)
$value = $stock["price"] * $_POST["shares"];
if($cash < $value){
apologize("you do not have enough money");
}else{
//insert stock into database
query("INSERT INTO shares
(id, symbol, shares)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE shares = shares + VALUES(shares)",
$_SESSION["id"], strtoupper($_POST["symbol"]),$_POST["shares"]
);
// substract the share value from cash
query("UPDATE users SET cash = cash - ? WHERE id = ?", $value, $_SESSION["id"]);
redirect("/");
}
}
}
else
{
// render portfolio
render("buy_search.php", ["title" => "Buy"]);
}
?>
这是查询功能
function query(/* $sql [, ... ] */)
{
// SQL statement
$sql = func_get_arg(0);
// parameters, if any
$parameters = array_slice(func_get_args(), 1);
// try to connect to database
static $handle;
if (!isset($handle))
{
try
{
// connect to database
$handle = new PDO("mysql:dbname=" . DATABASE . ";host=" . SERVER, USERNAME, PASSWORD);
// ensure that PDO::prepare returns false when passed invalid SQL
$handle->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch (Exception $e)
{
// trigger (big, orange) error
trigger_error($e->getMessage(), E_USER_ERROR);
exit;
}
}
// prepare SQL statement
$statement = $handle->prepare($sql);
if ($statement === false)
{
// trigger (big, orange) error
trigger_error($handle->errorInfo()[2], E_USER_ERROR);
exit;
}
// execute SQL statement
$results = $statement->execute($parameters);
// return result set's rows, if any
if ($results !== false)
{
return $statement->fetchAll(PDO::FETCH_ASSOC);
}
else
{
return false;
}
}
“query”函数在哪里定义?我敢打赌,这不是返回一个整数,而是一个数组或对象。 – fuzic 2013-03-17 03:36:45
请做var_dump($ cash)和var_dump($ value);并向我们显示输出。 – Danack 2013-03-17 03:42:08
转储($现金)给出了这样的阵列 ( [0] =>数组 ( [现金] => 0.00 ) ) 转储($值)给出了两倍。 – tironci 2013-03-17 03:47:01