господа! с pdo никогда не работал, прошу помочь понять структуру и порядок запроса, потому что на текущий момент ничего записать в бд не получается, а ошибок как таковых не высвечивается.
первый кусок кода
require_once( "databaseconnection.php" );
if (!$dbh) {
echo "error";
} else {
echo "connection successfull . <br />";
}
$data = $_POST;
var_dump($data);
здесь я проверяю соединение с бд (успешно). затем присваиваю переменной $data массив из 21 элемента (он же отображается при обращении к исполняемому файлу.
затем я готовлю запрос в переменную sql с плейсхолдерами.
$sql = "INSERT INTO contract (fullname, shortname, inn, kpp, ogrn, okpo, director, position, post, f-address, y-address, n-contract, d-contract, bik, paymentaccount, correspondentaccount, bank, tel, email, manager, party)
VALUES (:fullname, :shortname, :inn, :kpp, :ogrn, :okpo, :director, :position, :cause, :fact, :yur, :numbercontract, :datecontract, :bik, :paymentaccount, :correspondentaccount, :bank, :tel, :email, :manager, :party)";
дальше - проблемы. я двумя вариантами (как нагуглил) пытался забиндить плейсхолдеры переменным из $data, а именно я делал так:
$s->bindValue(':party', $data['party']);
$s->bindValue(':fullname', $data['fullname']);
$s->bindValue(':shortname', $data['shortname']);
$s->bindValue(':inn', $data['inn']);
$s->bindValue(':kpp', $data['kpp']);
$s->bindValue(':ogrn', $data['ogrn']);
$s->bindValue(':okpo', $data['okpo']);
$s->bindValue(':yur', $data['yur']);
$s->bindValue(':fact', $data['fact']);
$s->bindValue(':director', $data['director']);
$s->bindValue(':position', $data['position']);
$s->bindValue(':cause', $data['cause']);
$s->bindValue(':numbercontract', $data['numbercontract']);
$s->bindValue(':datecontract', $data['datecontract']);
$s->bindValue(':bik', $data['bik']);
$s->bindValue(':paymentaccount', $data['paymentaccount']);
$s->bindValue(':correspondentaccount', $data['correspondentaccount']);
$s->bindValue(':bank', $data['bank']);
$s->bindValue(':tel', $data['tel']);
$s->bindValue(':email', $data['email']);
$s->bindValue(':manager', $data['manager']);
или второй вариант, как я биндил параметры
$params = [
':fullname' => $data['fullname'],
':shortname' => $data['shortname'],
':inn' => $data['inn'],
':kpp' => $data['kpp'],
':ogrn' => $data['ogrn'],
':okpo' => $data['okpo'],
':director' => $data['director'],
':position' => $data['position'],
':cause' => $data['cause'],
':fact' => $data['fact'],
':yur' => $data['yur'],
':numbercontract' => $data['numbercontract'],
':datecontract' => $data['datecontract'],
':bik' => $data['bik'],
':paymentaccount' => $data['paymentaccount'],
':correspondentaccount' => $data['correspondentaccount'],
':bank' => $data['bank'],
':tel' => $data['tel'],
':email' => $data['email'],
':manager' => $data['manager'],
':party' => $data['party']
];
затем я запускал вот эту конструкцию, насколько понимаю - подготовку к запросу в бд.
$s = $dbh->prepare($sql);
и уже после вызывал сам запрос
$s->execute($params);
вместо $params в случае с bindValue было пусто. Также пробовал методом тыка сувать туда $data, но ничего не происходит.
Как результат я не имею ошибки (или, по крайней мере, я её не вижу). Но база данных - пуста.
Массив $data имеет в себе 21 элемент. Таблица contract состоит из 22 столбцов (первый - id).
столбец. – Тимур Жумашев Aug 01 '21 at 14:21