2017-11-23 14 views
2

INSERT을 수행하는 중에 문제가 발생했습니다. 정상적으로 처리하지 않아도 성공합니다.ANSI_QUOTES 모드로 삽입합니다.

내 테이블 구조 : table structure

참고 : given1, given2given3필수 필드 있습니다.

$this->medoo->insert('teste', ['dado2' => 11, 'dado3' => 'teste']); 

이것은 데이터 2 유형 SET의, 그리고 데이터 3 유형의 INTEGER`의 때문에 허용되지해야 내 응용 프로그램에서

나는 다음과 같은 방법 ( https://github.com/catfan/Medoo)를 실행합니다. 그렇더라도 삽입은 성공합니다. 또한 data1 은 필수 필드인데도 인수로 전달되지 않습니다.

내가 MySQL의 로그를 확인하고 다음 항목을 가지고 : 데이터베이스에서 수동으로 SQL을 실행

SET SQL_MODE=ANSI_QUOTES; 
INSERT INTO "teste" ("dado2", "dado3") VALUES ('11', 'teste'); 

을, 나는 문제가 ANSI_QUOTES을 사용하여에 있음을 발견했다. 데이터베이스 어떻게 든 삽입을 받아, 대신 오류 메시지를 발행의이 경고 발행 : print screen of the return message


나는 그게 Medoo 소스 코드를 수정하거나 MySQL로이 문제를보고 필요하다고 생각합니다. 나는 무엇을해야할지 모른다.

MySQL 버전은 컬럼에 맞지 않는 값을 삽입 할 때 내가 MySQL 서버가 STRICT 모드로 설정되어 6.3.6

답변

0

, 그것은 오류가 발생 MySQL의 워크 벤치를 사용 5.7.14
입니다. SET SQL_MODE=ANSI_QUOTES;을 호출하면이 엄격 모드가 사용 중지 될 가능성이 큽니다.

Medoo 프레임 워크의 저자에게 연락하거나 다른 프레임 워크를 사용하거나 PDO을 사용하여 데이터베이스에 액세스 할 수 있습니다.

자세한 내용은 mysql docs on server modes을 참조하십시오.

+0

완벽한 친구 !!! 정보 주셔서 감사합니다. Medoo.php ($ commands [] = 'SET SQL_MODE = ANSI_QUOTES')의 121 행에 주석을 달고 MySQL 구성에 ANSI_QUOTES 모드를 직접 추가하여이 문제를 해결했습니다. 문제는 Medoo와 함께, 모든 모드를 삭제하여 ANSI_QUOTES 만 남겨서는 안되며, 다른 모드를 유지하고 ANSI_QUOTES를 추가해야합니다. –