PDO (객체)를 사용하여 mysql-DB 항목을 INSERT하려고합니다. 사전에 PDO를 이해하지 못한 후에 나는이 질문을 재현했다.PHP PDO를 사용하여 삽입
문제는 아무 것도 DB에 추가되지 않지만 throw 된 예외가 발생하지 않는다는 것입니다. 나는 내가하려고하는 것을 성취하기위한 더 쉬운 방법이 있어야한다고 확신한다. 하지만 PHP와 SQL의 초보자인데 .. 어떤 도움이나 제안이라도 대단히 감사하겠습니다. 올바른 방법으로 다음
function INSERT($req) {
try {
$db = new PDO('mysql:host=127.0.0.1;dbname=mcqsystem;charset=utf8', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
//$values = explode(",", $req);
$values = array('question goes here', -1, 'a|b|c|d|e', '01', '0|', '0|', '0|', '0', '2', 'info text', '1', '23.01.2014', '-1', '28.12.2013 15:04:03');
$stmt = $db->prepare("INSERT INTO _mcqs (`Question`, `PictureID`, `PossibleAnswers`, `CorrectAnswers`, `Categories`, `Courses`, `Tags`, `Variant`, `Flag`, `Information`, `Locked`, `ExamDate`, `AddedBy`, `AddedWhen`) VALUES(:question, :pictureid, :possibleanswers, :correctanswers, :categories, :courses, :tags, :variant, :flag, :information, :locked, :examdate, :addedby, :addedwhen)");
$stmt->bindParam(':question', $values(0), PDO::PARAM_STR);
$stmt->bindParam(':pictureid', $values(1), PDO::PARAM_INT);
$stmt->bindParam(':possibleanswers', $values(2), PDO::PARAM_STR);
$stmt->bindParam(':correctanswers', $values(3), PDO::PARAM_STR);
$stmt->bindParam(':categories', $values(4), PDO::PARAM_STR);
$stmt->bindParam(':courses', $values(5), PDO::PARAM_STR);
$stmt->bindParam(':tags', $values(6), PDO::PARAM_STR);
$stmt->bindParam(':variant', $values(7), PDO::PARAM_STR);
$stmt->bindParam(':flag', $values(8), PDO::PARAM_INT);
$stmt->bindParam(':information', $values(9), PDO::PARAM_STR);
$stmt->bindParam(':locked', $values(10), PDO::PARAM_BOOL);
$stmt->bindParam(':examdate', $values(11), PDO::PARAM_STR);
$stmt->bindParam(':addedby', $values(12), PDO::PARAM_STR);
$stmt->bindParam(':addedwhen', $values(13), PDO::PARAM_STR);
$stmt->execute();
} catch(PDOException $ex) {
echo "ERROR @ INSERT: " . $ex->getMessage();
some_logging_function($ex->getMessage());
}
}
배열의 항목을 잘못 참조하고 있습니다. 대괄호 ('$ values [0]')를 사용해야합니다. –