Diziyi Virgül İle Birleştirerek INSERT İşlemi
Merhaba.
Bir multiple select formu var. name'i mesajalan[] olan.
Ben bu formdan gelen değerleri virgül ile birleştirerek mesaj_alan_id sütununa yazdırmak istiyorum.
Ben implode ile denediğimde şu hatayı veriyor.
Data truncated for column 'mesaj_alan_id' at row 1
Bu konuda yardımcı olur musunuz?
Aslında sorunun temel noktası aşağıda belirttiğim kod demetinde yer alıyor;
Eğer :icerik
şeklinde bir tanımlama yapıyorsan sorgunda, sorgunu execute ederken dizide yer alan anahtarlarda :
ifadesini kaldırman gerekiyor.
Yada istersen :
ifadesi yerine sorgunda ?
kullanarak sıralı veri yönetimi de yapabilirsin.
implode
kullanımında bir problem göremedim, sadece 1, 2, 3
tarzında yapıcaksan virgüllerin sonunda yer alan boşluğu da implode fonksyonunda belirtmen gerekir.
Sql sorgusunda INSERT INTO
eğer SET
ile birlikte kullanılıyorsa UPDATE sorgusu gibi sutun_adı = 'deger'
şeklinde kullanılabilir, o kısımda da bir problem görüntüleyemedim.
Kodun son düzenlenmiş haline de aşağıda yer verdim;
Detaylı PDO kullanımı ve örnekleri için buraya göz atabilirsin.
GÜNCELLEME
- Ek olarak,
mesaj_alan_id
sütununun,
gibi bir karakter içerdiği için veritabanı tarafında virgül gibi özel karakterlere izin veren bir veri yapısı kullanmalısın. Eğer ilgili sütunun veri tipiINTEGER
ise, bu veri tipi yalnızca rakamları alabildiği içinVARCHAR
veyaTEXT
gibi özel karakterleri de barındıran veri tiplerinden birini tercih etmelisin.