-1

だから、私は私のクエリがうまくいくはずだとかなり確信しています。しかし、var_dumpを実行したところ、falseが返されるため、理由はわかりません。誰かが私のクエリの何が問題なのか、そしてそれを修正する方法を教えてもらえますか?私のカスタム関数db_connectではなく、以前は機能していたと確信しています。何が問題なのですか?

これが私のコードです:

require_once("includes/helpers.php");
session_start();

$dbh = connect_db('mysql:host=localhost;dbname=project1', 'jharvard', 'crimson');

if (!isset($_POST['quantity'])) { //go back if incomplete
    redirect('search');
}   

if (!isset($_SESSION['email'])) {
    redirect('index');
}
elseif (!isset($_SESSION['row'])) {
    redirect('stocks');
}

$amount = htmlspecialchars($_POST['quantity']);
$value = htmlspecialchars($_SESSION['row']);
$email = htmlspecialchars($_SESSION['email']);
$name = htmlspecialchars($_SESSION['q']);   

if (!filter_var($amount, FILTER_VALIDATE_INT) || $amount < 0) {
    redirect('search');
}

$dbh->beginTransaction();
$result = $dbh->query("SELECT balance FROM users WHERE email = $email"); //get balance 
$result1 = $dbh->query("SELECT id FROM users WHERE email = $email"); //get id

var_dump($result);

$bal = $result->fetchAll(PDO::FETCH_NUM);
$id = $result1->fetch(PDO::FETCH_ASSOC);


//if ($bal < $amount * $value) {
//  redirect ('search');
//} 

$bal = $bal - $amount * $value; //subtracting from total

$dbh->exec("INSERT INTO stocks (name, shares, id) VALUES ('$name', '$amount', '$id')");
$dbh->commit();
4

1 に答える 1

1

$email変数を引用符で囲む必要があります。

$result = $dbh->query("SELECT balance FROM users WHERE email = '$email'"); //get balance 
$result1 = $dbh->query("SELECT id FROM users WHERE email = '$email'");

または連結:

$result = $dbh->query("SELECT balance FROM users WHERE email = '".$email."'");
$result1 = $dbh->query("SELECT id FROM users WHERE email = '".$email."'");
于 2012-07-23T05:53:49.117 に答える