У меня есть небольшой фрагмент кода, который я пытаюсь выполнить с помощью ответа ajax. У меня есть идентификатор, но по какой-то причине мой оператор удаления не работает (не удаляет запись, поэтому добавляется в массив $ err). Я уверен, что это что-то глупое, но сейчас это не прыгает на меня.
КОД PHP
<?php
define('INCLUDE_CHECK',true);
require '../../connect.php';
require '../../functions.php';
// Those two files can be included only if INCLUDE_CHECK is defined
// sets site to require https
echo redirectToHTTPS();
session_name('tzLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
if (isset($_POST['id']) && $_SESSION['id'] && $_SESSION['permlvl']==3 )
{
$id = is_numeric($_POST['id']);
$err = array();
$query = "DELETE FROM employees WHERE id = :id";
$statement = $db -> prepare($query);
$statement -> BindParam('id', $id, PDO::PARAM_INT);
$result = $statement -> execute();
$statement -> closecursor();
if ($result === true){
}
else{
$err[] = "error";
}
}
//check for error messages
if(!count($err))
{
echo 'success';
}
else{
//on failure, future will include logging either by sending email or writing to a log file
}
?>
ОБНОВЛЕНИЕ Я изменил режим ошибки БД и могу его отобразить. Так что это должно быть связано с тем, как спроектирована моя база данных.
Неустранимая ошибка: неперехваченное исключение 'PDOException' с сообщением 'SQLSTATE [23000]: нарушение ограничения целостности: 1451 Невозможно удалить или обновить родительскую строку: ограничение внешнего ключа не выполнено (_2 _._ 3_, CONSTRAINT
thrives_ibfk_1
FOREIGN KEY (n_emp
) ССЫЛКИemployees
(ID
)) 'в /Applications/XAMPP/xamppfiles/htdocs/jen/maintabs/Employees/delete.php:23 Трассировка стека: # 0 / Applications / XAMPP / xamppfiles / htdocs / jen / maintabs / Employees /delete.php(23): PDOStatement- ›execute () # 1 {main} добавлен в /Applications/XAMPP/xamppfiles/htdocs/jen/maintabs/Employees/delete.php в строке 23
fails
? Только 6 строк представленного кода относятся к проблеме, остальные не имеют смысла для вопроса - person zerkms   schedule 27.12.2011$db -> prepare()
, пробелы глупые и, возможно, сбивают с толку. Просто:$db->prepare()
. (В основном.) - person Jared Farrish   schedule 27.12.2011echo redirectToHTTPS()
?? Нам нуженif (isset($_POST['id']) && $_SESSION['id'] && $_SESSION['permlvl']==3 )
?? Просто удалите все бессмысленные строки и дайте нам определениеfail
. Мы понятия не имеем, в чем вы застряли. Вот как обрабатывать ошибки с помощью PDO: php.net/manual/en/pdo .errorinfo.php - person zerkms   schedule 27.12.2011Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
--- это недостаточно информативно? - person zerkms   schedule 27.12.2011