Php aracılığıyla mysql'e ekleniyor. PHP kodunu kullanarak MySQL veritabanına nasıl yazılır
Blogdan taşınan yorumlar
SERGEY
01:25 tarihinde 09/14/2016
Tünaydın!
Şu soruyla ilgileniyorum: Bir veritabanı kullanmadan veri depolamayı ve program ayarlarını düzenlemenin en kolay yolu nedir? MySQL veya Access'e bağlı olmak istemiyorum ..
YÖNETİCİ
22:14 tarihinde 09/14/2016
Merhaba!
Özellikler Ayarlar
App.Config
XML dosyası
serileştirme
Listeden bir şey seçmeye çalışın.
NIKOLAI
02:28 tarihinde 09/16/2016
Merhaba, dataGridVIew'deki seçili satırı dataGridVIew ve phpMyAdmin'den nasıl kaldırırım.
PhpMyAdmin? Bu sadece veritabanıyla çalışmak için bir kabuk, açıklar mısınız?
NIKOLAI
09/18/2016, 02:24
Seçilen satırın DataGridView ve veritabanından kaldırılması gerekir.
YÖNETİCİ
09/19/2016 07:00
Mysql veritabanında bir satır nasıl silinir - makale eklendi.
NIKOLAI
09:20 tarihinde 09/20/2016
Çok teşekkür ederim.
DIMA
10:24 tarihinde 09/20/2016
Merhaba yapabilir misin bu taraftan DataGridView aracılığıyla değil, ComboBox aracılığıyla uygulansın mı? Öyleyse nasıl? Teşekkür.
YÖNETİCİ
03:21 tarihinde 09/22/2016
Merhaba. Misal:
GENNADY
18:25 tarihinde 09/22/2016
System.Windows.Forms.TextBox, Text: ge veritabanına neden aşağıdaki metni giriyorum
Bu arada, bu genin sonunda bu (ge) yazılmıştır, metin tablo ayarlarında belirtilmiş olmasına rağmen, genin kelimesi daha da sığmalıydı, bu tabloyu programıma getirdim ve çıkıyor bana tüm bu gereksiz metni gösteriyor
YÖNETİCİ
09.24.2016 04:17
Büyük olasılıkla, SQL sorgusu yanlış yazılmıştır, örneğin:
TextBox1'e şu adı girin: Gena.
Sql sorgusu: "Tablo adı değerlerine ekle (textBox1, ..)"; Sonuç: System.Windows.Forms.TextBox
Ve şunu iletmeniz gerekir: "Tablo adı değerlerine ekle (textBox1.Text, ..)";
Sonuç: Gen
GENNADY
09.24.2016 18:41
İşte böyle. Teşekkür
SERGEY
09/25/2016, 11:51
Merhaba. TextBox ile veritabanına ekleme nasıl yapılır?
YÖNETİCİ
20:53 tarihinde 09/26/2016
Prensipte her şey aynıdır. Örneğin, son örneğe bakalım, ihtiyacı var:
// parametreler oluşturun ve bunları cmd.Parameters.AddWithValue ("@ Name", textBox1.Text) koleksiyonuna ekleyin; cmd.Parameters.AddWithValue ("@ LastName", textBox2.Text);
şimdi parametreler: Name ve LastName metin kutularına girilen değerleri alır ve bunları veritabanına aktarır
LINARA
17:45 tarihinde 09/27/2016
Merhaba, dataGridVIew ve phpMyAdmin'de vurgulanan satır nasıl?
YÖNETİCİ
02:06 tarihinde 09/29/2016
PhpMyAdmin'de vurgulanan satırın nasıl olabileceğini bilmiyorum. Ve dataGridView'da, örneğin, bu SelectionChanged olayı kullanılarak yapılabilir.
PSH
03:48 tarihinde 09/30/2016
2 Linara:
Dizeleri bu şekilde düzenlemek istiyorsanız, bir HediSQL aracı alın, ince ayar yapın ve dizeleri değiştirin.
2 yönetici
Güzel gün! Malzemeler için teşekkürler - her şey çok güzel bir şekilde belirtilmiştir)
Soru: Bu sorgu ile veri ekliyorum (bu bir test):
Dize sql \u003d "INSERT INTO users (` FIO`, `Tour`,` Count`, `Cost`,` Date`, `Passport`,` Doğum`) DEĞERLER ("Kolyan", "Moskova", "1 + 1 ", 1100," 2011-11-11 "," 1111 1111 "," 11/9/1900 ");";
Veriler girilir her şey tamamdır, ancak veritabanında (mysql) Kiril alfabesi yerine "????" vardır.
Visual Studio, System.String'in bir Unicode dizisi olduğunu söylüyor.
Ayrıca denedi:
ALTER VERİTABANI "test` COLLATE" koi8r_general_ci "; ALTER TABLE `users` COLLATE \u003d" koi8r_general_ci "; ALTER VERİTABANI "test` COLLATE" utf8_unicode_ci "; ALTER TABLE `users` COLLATE \u003d" utf8_unicode_ci ";
Ama yardımcı olmuyor ..
Ne yanlış olabilir? Farklı kodlama VS ve DB? Ya da ne?
Okunacak / değiştirilecek ne gönderilebilir.
teşekkür
YÖNETİCİ
01.10.2016 saat 09:49
Merhaba.
Veritabanında (ve tabloda) harmanlama utf_general_ci şeklindedir.
Böyle bir karşılaştırma var mı? Belki utf8_general_ci?
Genellikle, bir Mysql veritabanı, utf8_general_ci karşılaştırması seçilerek oluşturulur, bu nedenle, krakozyabralar istemciden sunucuya gelmedikçe, Kiril alfabesiyle ilgili hiçbir sorun yoktur.
COLLATION, karşılaştırma için kullanılır, ancak bu durumda karakter kümesi önemlidir. Bu nedenle, öncelikle sunucuda, örneğin utf8'de ve latin1'de doğru ayarlandığından emin olmanız gerekir.
.Net üzerinden bağlanırken, (varsayılan) bağlayıcı latin1 kullanır, bu nedenle bazen bağlantı dizesinde utf8 kodlamasını açıkça belirtmeniz gerekir:
MySqlConnection mycon; mycon \u003d new MySqlConnection ("sunucu \u003d 127.0.0.1; uid \u003d vasya; pwd \u003d 123; veritabanı \u003d test; Karakter kümesi \u003d utf8;"); // MySqlConnectionStringBuilder: mysqlCSB.CharacterSet \u003d "utf8";
PSH
01.10.2016 saat 11:34
Haklısın, kendini tarif ettin utf8_general_ci!
Evet yardımcı oldu ,; Karakter kümesi \u003d utf8;
Çok teşekkürler!
SERGİ
02.10.2016 saat 11:02
Gereken çalışma örneği için teşekkürler. Soru
Veritabanının IP adresini girmek istediğim bir metin alanı oluşturdum, ancak bu verileri burada nasıl değiştireceğimi bilmiyorum
Dize conStr \u003d " [e-posta korumalı]; kullanıcı \u003d test; "+
"veritabanı \u003d test; şifre \u003d test;";
Lütfen bana metin alanlarından pencere formuna bu yapıya nasıl veri ekleyeceğimi söyleyin…
YÖNETİCİ
10/03/2016, 11:50
"[e-posta korumalı]; kullanıcı \u003d ...
Genel olarak, bu makalede olduğu gibi özellikleri veya böyle bir dize yerine String.Format () yöntemini kullanmak daha iyidir.
OLGA2203
20:14 tarihinde 05/15/2017
String Connect \u003d "Sunucu \u003d 127.0.0.1; Bağlantı Noktası \u003d 3306; Veritabanı \u003d taban; Veri Kaynağı \u003d localhost; kullanıcı \u003d kök;"; MySqlConnection con \u003d new MySqlConnection (Bağlan); con.Open (); // Veritabanına bir bağlantı kurun. MySqlCommand cmd \u003d new MySqlCommand (); cmd.CommandText \u003d @ ”INSERT INTO tovar (ID, Category, Name, TradeMark, Price, Photo, Size, Color, Material, Count) VALUES (@pr, @Category, @Name, @TradeMark, @Price, @Photo, @Size, @Color, @Material, @Count) ”; cmd.Parameters.AddWithValue (“@ pr”, sayaç); cmd.Parameters.AddWithValue (“@ Category”, comboBox1.SelectedItem.ToString ()); cmd.Parameters.AddWithValue (“@ Name”, textBox1.Text); cmd.Parameters.AddWithValue (“@ TradeMark”, textBox2.Text); cmd.Parameters.AddWithValue (“@ Price”, Convert.ToInt32 (textBox4.Text)); cmd.Parameters.AddWithValue (“@ Fotoğraf”, textBox3.Text); cmd.Parameters.AddWithValue (“@ Size”, textBox6.Text); cmd.Parameters.AddWithValue (“@ Color”, textBox5.Text); cmd.Parameters.AddWithValue (“@ Material”, textBox8.Text); cmd.Parameters.AddWithValue (“@ Count”, Convert.ToInt32 (textBox7.Text)); cmd.Connection \u003d con; cmd.ExecuteNonQuery (); MessageBox.Show ("Ekleme başarılı", "Ekleme başarılı oldu", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
"Sütun" Kimlik "boş olamaz" hatası verildi, Kimlik sütununa yapılan eklemeyi kaldırıyorum - aynısını sonraki sütun için yazıyor vb.
DEĞERLER'de parantez içinde herhangi bir sabit değer girersem, satır tabana eklenir.
Lütfen bana sorunun ne olduğunu söyler misin? Veritabanına tam olarak form aracılığıyla girilen verileri ve değerleri yazmam gerekiyor
Son güncelleme: 1.11.2015
"INSERT" ifadesi veri eklemek için kullanılır:
$ sorgu \u003d "INSERT INTO tovars VALUES (NULL," Samsung Galaksi III "," Samsumg ")";
INSERT ifadesi tabloya bir satır ekler. Sonra anahtar kelime INTO, tablonun adıdır ve VALUES'tan sonra, tüm sütunlar için değer kümesi parantez içinde gösterilir. Tabloda üç sütunumuz olduğundan, üç değer belirtiyoruz.
Önceki konu başlığından bu yana, tabloyu oluştururken aşağıdaki sütun sırasını belirttik: id, ad, şirket, bu durumda id sütunu için NULL değeri, ad için - "Samsung Galaxy III" ve şirket - "Samsumg".
İd sütunu AUTO_INCREMENT olarak tanımlandığından, bunun için belirli bir sayısal değer belirtmemize gerek yoktur, bir NULL değeri iletebiliriz ve MySQL bir sonraki kullanılabilir değeri sütuna atar.
Şimdi bir örnekle veri eklemeye bakalım. Bir dosya oluşturalım create.php aşağıdaki içeriğe sahip:
Veriler eklendi";) // bağlantıyı kapat mysqli_close ($ link);)?\u003e
Yeni model ekle
Burada veritabanı ile etkileşim kodu, formların işlevselliği ile birleştirilir: bir form kullanarak, veritabanına eklenecek verileri giriyoruz.
Güvenlik ve MySQL
Burada mysqli_real_escape_string () işlevini kullandık. Bir dizedeki karakterlerin kaçmasına hizmet eder ve bu daha sonra sQL sorgusu... Parametre olarak çıkış yapmak için bir bağlantı nesnesi ve bir dizge gerekir.
Bu nedenle, aslında iki kez kaçan karakter uyguluyoruz: önce mysqli_real_escape_string () işlevini kullanarak sql ifadesi için ve sonra htmlentities () işlevini kullanarak html için. Bu, kendimizi aynı anda iki tür saldırıdan korumamıza izin verecektir: XSS saldırıları ve SQL enjeksiyonu.
Bu yazıda belki de en önemlilerinden bazılarını analiz edeceğiz. SQL sorguları... o bir veritabanı tablosundan kayıt eklemek ve kaldırmak için sorgular... ÇOK sıklıkla gerekli olduğundan tabloya yeni kayıtlar ekleve içinde yap otomatik mod, o zaman bu materyal çalışma için gereklidir.
Başlamak SQL ekleme sorgusu yeni giriş masaya:
INSERT INTO users (login, pass) değerleri ("TestUser", "123456")
Giriş eklerken ilk komut " TAKIN", ardından kaydı eklediğimiz tablonun adı. Ardından parantez içinde doldurmak istediğimiz alanların adları geliyor. Ve sonra parantez içinde" değerler"Seçtiğimiz alanların değerlerini listelemeye başlıyoruz. Bu sorguyu yürüttükten sonra tablomuzda yeni bir kayıt görünecektir.
Bazen alır tablodaki bir kaydı güncellemebunun için aşağıdakiler var SQL sorgusu:
GÜNCELLEME kullanıcıları SET login \u003d "TestUser2", pass \u003d "1234560" WHERE login \u003d "TestUser"
Bu sorgu daha karmaşıktır çünkü yapısı vardır " NEREDE", ancak aşağıda daha fazlası var. Önce komut geliyor" GÜNCELLEME"ardından tablo adı ve ardından" AYARLAMAK"Değiştirmek istediğimiz tüm alanların değerlerini tanımlıyoruz. Bu basit olurdu, ancak şu soru ortaya çıkıyor:" Hangi kaydı güncellemelisiniz?". Bunun için var" NEREDE". Bu durumda, kaydı güncelliyoruz," oturum aç"önemli olan" TestUser". Lütfen bu tür birkaç kayıt varsa, o zaman kesinlikle her şey güncellenecek! Bunu anlamak çok önemlidir, aksi takdirde masanızı kaybetme riskiniz vardır.
Biraz daha konuşalım " NEREDE". Basit eşitlik testlerine ek olarak, eşitsizlikler ve mantıksal işlemler de vardır: VE ve VEYA.
GÜNCELLEME kullanıcıları SET login \u003d "TestUser2", pass \u003d "1234560" WHERE id< 15 AND login="TestUser"
SQL sorgusu bu kayıtları güncelleyecek İD hangisi daha az 15 VE alan " oturum aç"anlamı var" TestUser". Umarım tasarımı çözmüşsünüzdür." NEREDE"çünkü çok önemli. Kesinlikle." NEREDE"ne zaman kullanılır tablolardan kayıtlar getiriliyorve bu, veritabanları ile çalışırken en sık kullanılan görevdir.
Ve nihayet basit Bir tablodan kayıtları silmek için SQL sorgusu:
WHERE login \u003d "TestUser2" kullanıcılarından SİL
Komuttan sonra " SİL", kayıtları silmek istediğiniz tablonun adıdır. Ardından," NEREDE "yapısını açıklıyoruz. Kayıt, açıklanan koşullarla eşleşirse silinecektir. Yine, tatmin eden kayıt sayısına bağlı olarak unutmayın. sonraki durum " NEREDE", herhangi bir sayıda silinebilir.
Ders temel alınacaktır form geri bildirim hemen hemen her sitede gereklidir.======================================== ?>
Adım bir: İçinde veritabanı oluşturma MySQL
Açığız phpMyAdmin (temel pakete dahildir Denwer"a) ve" adlı bir üs oluşturun test_base", kodlamayı seçin" cp1251_general_ci".
======================================== ?>
İkinci adım: İçinde bir tablo oluşturmak MySQL vasıtasıyla SQL sorguları
Elbette kullanarak bir tablo oluşturabilirsiniz. standart araçlar phpMyAdmin, ancak oluşturulan tablonun yapısı açıkça görülebilir olacaktır.
"Adlı bir tablo oluşturun test_tablo"ve adları olan altı alanla:
"ad" - kullanıcı adları burada saklanacaktır;
"e-posta" - adresler burada saklanacak elektronik kutular kullanıcılar;
"tema" - mesajın konusu burada saklanacaktır;
"mesaj" - mesajlar burada saklanacaktır;
"veri" - mesajın gönderildiği tarih burada saklanacaktır;
"id" - kayıt (satır) kimlik numarası, anahtar alanı.SQL sorgusu:
tablo test_table (
id int (11) null değil auto_increment,
isim varchar (255) null değil,
e-posta varchar (255) boş değil,
tema varchar (255) null değil,
mesaj metni boş değil,
veri tarihi boş değil,
birincil anahtar (kimlik)
);======================================== ?>
Adım üç: Form oluşturma
index.html:
MySQL Kaydetme Formu
MySQL'de veri kaydetme biçimine bir örnek