-2
그래서 문제는 행을 업데이트 할 수 없습니다. 캡션을 업데이트하는 번호와 같게 설정할 때 준비된 문장을 포함하면 작동하지 않습니다.행을 업데이트 할 수 없습니다.
편집 : 이제는 업데이트되지 않지만 오류는 없습니다.
<?php
try {
$handler = new PDO('mysql:host=127.0.0.1;dbname=db', 'root', '');
$handler ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo $e->getMessage();
die();
}
if (isset($_POST['submit'])) {
if ($_POST['submit'] == "Edit") {
$sql = $handler->prepare('UPDATE images SET caption = :caption WHERE id = :id');
$sql->execute(array(
':caption' => $_POST['caption'],
':id' => $_POST['id']
));
}
}
?>
<!DOCTYPE html>
<html>
<body>
<main>
<form action="new.php" method="post">
<?php
$sql = $handler->prepare('SELECT * FROM images WHERE active = 1');
$sql->execute();
$row = $sql->fetchAll();
for ($i=0; $i<count($row); $i++) {
echo '<input type="text" name="id" value="'. $row[$i]['id'] .'"><br><br>';
echo '<input type="text" name="caption" value="'. $row[$i]['caption'] .'"><br><br>';
}
?>
<input type="submit" name="submit" value="Edit">
</form>
</main>
당신이 PDO 예외가 켜져 있습니까? '$ db-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);'이것은 유용한 에러를 발생시킵니다. 나는 당신이'UPDATE'에'WHERE' 절을 가지고 있지 않다는 것을 알았습니다. 이것은 당신이 _ rows_을 수정하고 있음을 의미합니다. –
그래, 내가 id ...에 문제가있어서 .. 설정할 때마다 Undefined index ... – Darkez
그래서 코드를 업데이트 했는데도 오류는 없었습니다. – Darkez