2011-12-05 18 views
10

Sitemizden sayım hesaplamak için kötü bir kodu daha iyi bir çözüme dönüştürmek zorundayım. i zamanlardageçersiz mysql sorgusuna ekle

sayar bir tablo var

akım tablosu:

CREATE TABLE `hits_2011_12_5` (
    `count` int(11) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

şimdi yavaş yavaş eskisine yeni kod geçirmek istiyor ama yeni kodla bu hata var:

[email protected]:test> insert into hits_2011_12_5 values (1,2,3,4,5); 
ERROR 1136 (21S01): Column count doesn't match value count at row 1 

Sorun nedir?

+1

Böyle bir tablo, "daha iyi çözüm" anlamına gelir? –

+0

eski yapı, eski "uzman" 1000 tablo üzerinde oluşturulan istekleri saymak için sadece bir sütun ile oluşturulmuştur. Bu yüzden bunu değiştirmek istiyorum ve sayı (*) yerine tarih için bir yan tümcesiyle kullanın ama şimdi tüm verileri bu tabloya geçirmem gerekiyor ki bu bir ağrıyor, bu yüzden elle yapmak yerine bir php betiği yarattım ama bu hatayı aldım – ana

+0

Sorunuz anlamsız. Geçerli tabloya "hits_2011_12_5" denir, ancak ekleme sorgunuz "log" adı verilen bir tablo kullanır. Bize "log" tablosu için şema vermeyin, böylece sadece sorunun ne olduğunu tahmin edebiliriz. – liquorvicar

cevap

11

kullanımı bu: denedin sorgu 5 sütun gerektirir

[email protected]:test> insert into hits_2011_12_5 values (1),(2),(3),(4),(5); 
Query OK, 5 rows affected (0.00 sec) 
Records: 5 Duplicates: 0 Warnings: 0 

, 5 ekleme hatları değil.

İlgili konular