랩톱을 통해 로컬 사이트에서 작업했습니다. 테이블이 blog
이고 post_id
, title
, markdown
, author
, added
및 modified
이라는 필드가 있습니다.MySQL 쿼리는 내 랩톱에서 작동하지만 서버에서는 작동하지 않습니다.
추가 및 수정 된 필드는 둘 다 DATETIME입니다.
사용자가 블로그 게시물을하게
은, PHP는 성공적으로 쿼리를 실행 :INSERT INTO blog (title, author, markdown, added) VALUES ('BLA', 'BLA', 'BLA', NOW())
내가 phpMyAdmin에 들어갔다 및 작업 결과와 동일한 쿼리를 실행했습니다.
지금 정확한 데이터베이스를 서버에 내 보냈고 DB에 어떤 게시물도 저장되어 있지 않아 phpMyAdmin의 SQL을 통해 실행하려고 시도했지만 오류 Field 'modified' doesn't have a default value
이 표시되었습니다.
왜 이런 일이 발생합니까? 내 데이터베이스에서 두 가지 기본값은 None
이므로이 문제의 원인이 무엇인지 혼란스러워합니다.
내 랩탑에 PHP 5.3.1 및 MySQL 5.1.41 (XAMPP가 설치되어 있습니다.) 서버에 PHP 5.3.5 및 MySQL 5.5.8이 설치되어 있습니다 (필사적으로 최신 버전을 설치했습니다. 서버는 원래 실행 중이 었습니다. MySQL 5.1 및 PHP의 더 낮은 버전)
이것은 나를 죽이고, 잘만하면이 문제가 무엇인지, 또는 어떻게 고쳐야할지 잘 압니다.
편집 : 여기에 SHOW CREATE TABLE blog
개의 결과가 있습니다.
노트북 :
| blog | CREATE TABLE `blog` (
`post_id` mediumint(9) NOT NULL AUTO_INCREMENT,
`title` varchar(160) NOT NULL,
`author` varchar(100) NOT NULL,
`markdown` longtext NOT NULL,
`added` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`post_id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 |
서버 :
| blog | CREATE TABLE `blog` (
`post_id` mediumint(9) NOT NULL AUTO_INCREMENT,
`title` varchar(160) NOT NULL,
`author` varchar(100) NOT NULL,
`markdown` longtext NOT NULL,
`added` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`post_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 |
자동 증분 때문에 내 테스트의 다릅니다.
그것은 거의 확실 MySQL의 다른 버전과 관련이있다. 랩탑에 MYSQL 5.5.8을 가져 와서 다시 테스트하고 서버에서 데이터베이스를 가져올 수있는 방법이 있습니까? – JakeParis
두 서버 ('desc blog;')에 'blog'테이블에 대한 설명을 제공 할 수 있습니까? – sfk
@sfk :'desc 블로그'와 비슷한 것으로 추가되었습니다 ('desc 블로그'가 더 좋아 보이는 방식을 좋아합니다 ...) @ JMC : 저는 그 편에 완전히 기대고 있습니다. 그러나 저는 매우 솔직해질 것입니다. 저는 XAMPP가 설치 한 개별 서비스를 업데이트하려고 할 때 좋지 않은 경험을했습니다. 나는 나중에 그것을 시도하고 어떻게되는지 알려줄거야. – NessDan