ПроблемаMySQL вставляет значения в неправильных столбцах
С веб-сайта PHP, у меня есть форма для сбора информации, которая затем будет вставлена в базу данных MySQL, но эти три колонки, которые имеют неправильные значения вставлено в них. Остальные все в правильном порядке.
Значения, вставленные в переменные php через транзакцию MySQL.
Спасибо за ваше время.
phpmyadmin display (first row is manually corrected)
Код:
<?php
function registerPatient($ptUsername, $ptPassword, $ptFirstName, $ptLastName, $ptSalutation, $ptEmail, $ptDOB, $ptPostCode, $ptHouseNo, $ptTelNo, $link)
{
$accType = "Patient";
$dtID = $_COOKIE["ID"];
$errors = "";
$SQL_patientInsert =
"START TRANSACTION;
INSERT INTO accDetails (`username`, `hashPassword`, `accType`)
VALUES ('" . $ptUsername . "',
'" . $ptPassword . "',
'" . $accType . "');
INSERT INTO ptProfile (`firstName`, `lastName`, `salutation`, `email`, `DOB`, `postCode`, `houseNo`, `telephoneNo`, `dtID`, `ptID`)
VALUES ('" . $ptFirstName . "',
'" . $ptLastName . "',
'" . $ptSalutation . "',
'" . $ptEmail . "',
'" . $ptDOB . "',
'" . $ptPostCode . "',
'" . $ptHouseNo . "',
'" . $ptTelNo . "',
'" . $dtID . "',
LAST_INSERT_ID());
COMMIT;";
if (mysqli_multi_query($link, $SQL_patientInsert)) {
$errors .= "";
} else {
$errors .= "MYSQL Error: ". mysqli_error($link);
}
return $errors;
}
?>
var_dump от $ SQL_patientInsert
string(495) "START TRANSACTION; INSERT INTO accDetails (`username`, `hashPassword`, `accType`) VALUES ('bingbong', '$2y$10$WDvSHSxzIxaYB8dPGLRIWOFyIdPXxSw5JDXagOxeYuJUtnvFhI.lO', 'Patient'); INSERT INTO ptProfile (`firstName`, `lastName`, `salutation`, `email`, `DOB`, `postCode`, `houseNo`, `telephoneNo`, `dtID`, `ptID`) VALUES ('Dr', 'Bing', 'Bong', 'EMAIL REMOVED FOR SO', '1996-08-02', 'POSTCODE REMOVED FOR SO', '7', '83824', '1256', LAST_INSERT_ID()); COMMIT;"
Структура таблицы
Table Structure in PHPMyAdmin, no autoincrements, all values allowed to be null
Внимание! Вы склонны к SQL-инъекции. Подробнее читайте здесь. https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php –
var_dump ваш $ SQL_patientInsert, я уверен, что у вас есть ошибка в varaible, может быть, порядок в registerPatient call –
[link] (http://imgur.com/guSN6LL) Кажется, что ничего не отображается с переменными, это vardump из $ SQL_patientinsert сразу после вставки. –