php / mysql中的Prepared Statement问题

时间:2013-10-12 14:16:26

标签: php mysqli

我有一个问题是我在php / mysql中做的一个项目。 我正在设计一个网站,用户可以在其中记录他们的财务账户(银行账户/信用卡等)以及他们每月进行的交易及其类型。 我想要的是用户选择一个特定的帐户并使用GET我可以获取帐户ID,并使用它来获取与该帐户名相关的所有交易。 这是我的代码:

//connect to database
include ('connect-To-db.php');

//Ensure the id is appropriate
if (is_numeric($_GET['id']) && $_GET['id'] > 0)
                        {
    // get 'id' using GET superglobal variable
    $id = $_GET['id'];

    // get the credits, debits & catagory from the transactions table for that account
    if ($stmt = $mysqli->prepare("SELECT `Credit`,`Debit`,`Catagory` FROM `transactions` WHERE `Accname` IN
        (SELECT `Accname` FROM `Accounts` WHERE `accID`=?")) {
        $stmt->bind_param("i", $id);
        $stmt->execute();

        $stmt->bind_result($id,$Credit, $Debit, $Cat);

        //Loop through the results and display in a table format
        echo"<table>";
        echo "<th>Credits></th><th>Debits</th><th>Catagory</th>";

        while($row = $stmt->fetch()){
            echo "<tr>";
            echo "<td>.$Credit.</td>";
            echo "<td>.$Debit.</td>";
            echo "<td>.$Cat.</td>";
            echo "</tr>";

        }
        echo "</table>";

        $stmt->close();
    }
    // show an error if there is a problem connecting to the table
    else {
        echo "Error: could not prepare SQL statement".$mysqli->error;
    }
}

在尝试运行时,我得到错误,我在第2行附近有语法错误,但我在第2行没有“符号”。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

变化:

$mysqli->prepare("... WHERE `accID`=?"))

为:

$mysqli->prepare("... WHERE `accID`=?)"))
//                                   ^

您缺少子查询的右括号。