0

私のコードが 500 Internal Server error という行を返すのはなぜ$result = mysql_query("SELECT * FROM institutions");ですか? 私がやろうとしているのは、そのテーブルに行を追加した後、MySQL テーブル (「機関」と呼ばれる) の行数を数えることだけです。

    $institution_sql = "
    INSERT INTO `institutions`
    (`InstitutionName`, `HeaderPictureID`, `Description`, `DevicesInfo`, `DoingInfo`, `FacebookPage`, `Location`, `TwitterHandle`, `Website`, `CreatedAt`)
    VALUES
    (" . nz($_POST['TempInstitutionName']) . ", 74, 'N/A', 'N/A', 'N/A', 'N/A', 'On the Internet', 'N/A', 'N/A', NOW())
    ";

    $mysqli->query($institution_sql);
    if ($mysqli->errno) {
        $dbreturn['status'] = "PASSWORD_FAILURE";
    } else {
        $dbreturn['status'] = "EXEC_SUCCESS";

        $result = mysql_query("SELECT * FROM institutions");
        $rows = mysql_num_rows($result);
        echo "There are " . $rows . " rows in my table.";

        $insert_sql = "
        INSERT INTO `users`
        (`Handle`, `Email`, `FirstName`, `LastName`, `InstitutionID`, `TempInstitutionName`, `TwitterHandle`, `ProfilePictureID`, `HeaderPictureID`, `AccountType`, `CreatedAt`)
        VALUES
        (" . nz($_POST['Handle']) . ", " . nz($_POST['Email']) . ", " . nz($_POST['FirstName']) . ", " . nz($_POST['LastName']) . ", $num_rows, " . nz($_POST['TempInstitutionName']) . ", " . nz($_POST['TwitterHandle']) . ", " . nz('75') . ", " . nz('74') . ", " . nz($_POST['AccountType']) . ",NOW())
        ";

        $mysqli->query($insert_sql);
        if ($mysqli->errno) {
            $dbreturn['status'] = "EXEC_FAILURE";
        } else {
        $dbreturn['status'] = "EXEC_SUCCESS";

        $insertid = $mysqli->insert_id;

        $password_sql = "
        INSERT INTO `passwords`
        (`UserID`)
        VALUES
        ('$insertid')
        ";

        $mysqli->query($password_sql);
        if ($mysqli->errno) {
            $dbreturn['status'] = "PASSWORD_FAILURE";
        } else {
            $dbreturn['status'] = "EXEC_SUCCESS";
        }

        } //todo: use a transaction here

    }
4

5 に答える 5

2

$result = mysql_query("SELECT カウント(*) FROM 機関");

これにより、行数が直接返されます。

このリンクはあなたの詳細を知ることができます

http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

于 2013-10-11T09:48:53.280 に答える
2

あなたの問題は、あなたが混合MYSQLIすることですMYSQL

mysqli を使用してコードを書き直す

    $result = $mysqli->query("SELECT * FROM institutions");
    $rows = $result->num_rows ;
  //  and so on ...

mysqli 経由で接続してから、コードで mysql を使用します。

于 2013-10-11T09:50:34.043 に答える
0

...また、次のようになります。

VALUES ('" .nz($_POST['TempInstitutionName']) ."', 74

一重引用符に注意してください ['nz' 関数がそれを処理しない限り]。

于 2014-09-30T07:09:31.350 に答える