php синтаксис У меня ошибка с параметрами привязки и SELECT - PullRequest
0 голосов
/ 18 марта 2020

У меня есть составные ключи, такие как FirstName, MiddleName, LastName и LastSchoolAttended, которые являются основой школы и должны быть ограничены 1. Но у меня сейчас ошибка с $ stmt = $ conn-> prepare ($ SELECT), что, я думаю, я сделал неправильный синтаксис с $ SELECT. Я просто новичок в php. Как видите, у меня логическое И, и я даже не уверен, правильно ли я это делаю.

$SELECT = "SELECT
    FirstName,
    MiddleName,
    LastName,
    LastSchoolAttended
From information
Where FirstName = ? And MiddleName = ? And LastName = ? And LastSchoolAttended = ?
Limit 1";
$INSERT = "INSERT Into information (
    FirstName,
    MiddleName,
    LastName,
    Age,
    HomeAddress,
    ContactNumber,
    LastSchoolAttended
) values (?,?,?,?,?,?,?)";
$stmt = $conn->prepare($SELECT);
$stmt->bind_param("ssss", $FirstName, $MiddleName, $LastName, $LastSchoolAttended);
$stmt->execute();
$stmt->bind_result($FirstName, $MiddleName, $LastName, $LastSchoolAttended);
$stmt->store_result();
$rnum = $stmt->num_rows;
if ($rnum == 0) {
    $stmt->close();
    $stmt = $conn->prepare($INSERT);
    $stmt->bind_param("sssisis", $FirstName, $MiddleName, $LastName, $Age, $HomeAddress, $ContactNumber, $LastSchoolAttended);
    $stmt->execute();
}

1 Ответ

0 голосов
/ 18 марта 2020

Используйте следующий метод для отладки вашего кода.

Там вы можете получить подробный отчет об ошибке

<?php
$SELECT = "SELECT
    FirstName,
    MiddleName,
    LastName,
    LastSchoolAttended
From information
Where FirstName = ? And MiddleName = ? And LastName = ? And LastSchoolAttended = ?
Limit 1";
$INSERT = "INSERT Into information (
    FirstName,
    MiddleName,
    LastName,
    Age,
    HomeAddress,
    ContactNumber,
    LastSchoolAttended
) values (?,?,?,?,?,?,?)";
if ($stmt = $conn->prepare($SELECT)) {
    if ($stmt->bind_param("ssss", $FirstName, $MiddleName, $LastName, $LastSchoolAttended)) {
        if ($stmt->execute()) {
            if ($stmt->bind_result($FirstName, $MiddleName, $LastName, $LastSchoolAttended)) {
                $stmt->store_result();
                $rnum = $stmt->num_rows;
                if ($rnum > 0) {
                    $stmt->close();
                    if ($stmt = $conn->prepare($INSERT)) {
                        if ($stmt->bind_param("sssisis", $FirstName, $MiddleName, $LastName, $Age, $HomeAddress, $ContactNumber, $LastSchoolAttended)) {
                            if ($stmt->execute()) {
                                echo 'Successfully Executed';
                            } else {
                                echo 'Error 1: ' . $stmt->error;
                                die();
                            }
                        } else {
                            echo 'Error 2: ' . $stmt->error;
                            die();
                        }
                    } else {
                        echo 'Error 3: ' . $stmt->error;
                        die();
                    }
                } else {
                    echo 'Error 3.5: There is no entries in the `information` table';
                    die();
                }
            } else {
                echo 'Error 4: ' . $stmt->error;
                die();
            }
        } else {
            echo 'Error 5: ' . $stmt->error;
            die();
        }
    } else {
        echo 'Error 6: ' . $stmt->error;
        die();
    }
} else {
    echo 'Error 7: ' . $conn->error;
    die();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...