사용 가능한 현금에 대한 쿼리 결과를 주가와 비교하려고하는데 작동하지 않고 그 이유를 모르겠습니다. 나는 그들이 왜 $ 현금과 $ 값이 유효한 숫자라고 생각하기 때문에 그것이 작동하지 않는 이유를 이해하지 못합니다. 이것이 나에게 문제가되는 선이다.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
var_dump ($ cash) 및 var_dump ($ value)를 수행하십시오. 출력을 보여주세요. – Danack
덤프 ($ 현금)이 배열 ( [0] => 배열 ( [현금] => 0.00 ) ) 덤프 ($ 값) 이중을 제공을 제공한다. – tironci