sql php tablosuna veri ekleme. PHP'ye veri ekleme

Bu yazıda, MySQL veritabanına satır eklemek için PHP'nin nasıl kullanılacağına bakacağız.

Adım 1 - tablonun oluşturulması

İlk olarak, veriler için bir tablo oluşturmanız gerekir. Bu, barındırma kontrol panelinizde phpMyAdmin kullanılarak yapılabilecek basit bir prosedürdür.

phpMyAdmin'e giriş yaptıktan sonra şöyle bir arayüz göreceksiniz:

"Tablo oluştur" butonuna tıklayarak u266072517_name veritabanında Student isimli bir tablo oluşturalım. Bundan sonra, gerekli tüm tablo parametrelerini ayarladığımız yeni bir sayfa göreceğiz:

Bu, bir tablo için kullanılabilecek ve tabloların/veritabanlarının yapısı hakkında daha fazla bilgi alabileceğiniz en basit ayardır.

Sütun seçenekleri:

  • Ad, tablonun en üstünde görünen sütunun adıdır.
  • Tür - sütunun türü. Örneğin, string değerleri gireceğimiz için varchar'ı seçtik.
  • Uzunluk / Değerler - Bu sütundaki bir girişin sahip olabileceği maksimum uzunluğu belirtmek için kullanılır.
  • Dizin - "Kimlik" alanı için "Birincil" dizini kullandık. Tablo oluştururken birincil anahtar olarak yalnızca bir sütun kullanmanız önerilir. Bir tablodaki kayıtları listelemek için kullanılır ve bir tablo oluştururken gereklidir. Ayrıca, "Otomatik Artış" anlamına gelen "A_I"yi de işaretledim - kayıt sayısını (1,2,3,4 ...) otomatik olarak atama parametresi.
    Kaydet düğmesine tıklayın ve tablo oluşturulacaktır.

Adım 2. MySQL'e veri eklemek için PHP kodu yazmak.

Seçenek 1 - MySQLi yöntemi

İlk önce veritabanına bir bağlantı kurmanız gerekir. Daha sonra SQL INSERT sorgusunu kullanıyoruz. Komple kod örneği:

". mysqli_error ($ bağlantı);) mysqli_close ($ bağlantı);?>

Kodun ilk kısmı (satır 3 - 18) veritabanına bağlanmak içindir.

19. satırla başlayalım:

$ sql = "Öğrencilere GİRİN (adı, soyadı, e-postası) DEĞERLER (" Thom "," Flakon "," [e-posta korumalı]")";

MySQL veritabanına veri ekler. INSERT INTO, belirtilen tabloya veri ekleyen bir ifadedir. Örneğimizde, veriler Öğrenciler tablosuna eklenir.

Ardından, değerlerin eklendiği sütunların numaralandırılması gelir: ad, soyadı, e-posta. Veriler gösterilen sırayla eklenecektir. Yazmış olsaydık (e-posta, soyad, ad) değerler farklı bir sırada eklenirdi.

Sonraki kısım DEĞERLER operatörüdür. Burada sütunlar için değerler belirtiyoruz: ad = Thom, soyadı = Şişe, e-posta = [e-posta korumalı]

PHP kodunu kullanarak bir istek çalıştırdık. Kodda SQL sorguları alıntılanmalıdır. Kodun sonraki kısmı (satır 20-22), isteğimizin başarılı olup olmadığını kontrol eder:

if (mysqli_query ($ conn, $ sql)) (echo "Yeni kayıt başarıyla oluşturuldu";)

Bu kod, isteğin başarıyla tamamlandığı hakkında bir mesaj görüntüler.

Ve son kısım (22 - 24 satır), istek başarısız olursa bir bildirim görüntüler:

else (echo "Hata:". $ sql. "
". mysqli_error ($ bağlantı);)

Seçenek 2 - PHP Veri Nesnesi (PDO) Yöntemi

Öncelikle yeni bir PDO nesnesi oluşturarak veritabanına bağlanmamız gerekiyor. Onunla çalışırken çeşitli PDO yöntemlerini kullanacağız. Nesne yöntemleri şöyle adlandırılır:

$ the_Object-> the_Method();

PDO, SQL kodunu yürütülmeden önce "hazırlamanıza" izin verir. SQL sorgusu çalıştırılmadan önce değerlendirilir ve "düzeltilir". Örneğin, en basit SQL enjeksiyon saldırısı, SQL'i bir form alanına basitçe enjekte ederek gerçekleştirilebilir. Örneğin:

Bu sözdizimsel olarak doğru SQL olduğundan, noktalı virgül DROP DATABASE user_table'ı yeni bir SQL sorgusu yapar ve kullanıcı tablosu bırakılır. Hazırlanan ifadeler (bağlı değişkenler), noktalı virgüllerin ve tırnakların orijinal sorguyu tamamlamasına izin vermez, bu nedenle DROP DATABASE komutu hiçbir zaman yürütülmez.

Hazırlanan ifadeleri kullanmak için, veritabanı nesnesinin hazırlama () yöntemini çağıran yeni bir değişken yazmanız gerekir.

Doğru kod:

getMesaj(); ) // Veritabanına eklemek istediğimiz kişi için değişkenleri ayarlayın $ first_Name = "Thom"; $ last_Name = "Şişe"; $ e-posta = " [e-posta korumalı]"; // Veritabanı nesnesinin hazırlama () yöntemini çağıran bir değişken oluşturun // Çalıştırmak istediğiniz SQL sorgusu parametre olarak girilir ve yer tutucular şu şekilde yazılır: placeholder_name $ my_Insert_Statement = $ my_Db_Connection-> hazırla ( " INSERT INTO Students ( name, lastname, email) VALUES (: first_name,: last_name,: email) "); // Şimdi bindParam() yöntemini kullanmak için her bir yer tutucuya hangi değişkenin başvurduğunu betiğine söylüyoruz // İlk parametre yukarıdaki ifadedeki yer tutucudur, ikincisi $ my_Insert_Statement-> bindParam (: first_name, $ first_Name); $ my_Insert_Statement-> bindParam (: last_name, $ last_Name); $ my_Insert_Statement-> bindParam (: email, $ email); // Az önce tanımladığımız verileri kullanarak sorguyu yürütün // Execute () yöntemi başarılı olursa TRUE, değilse FALSE döndürür ve ($ my_Insert_Statement-> execute () durumunda kendi mesajınızı yazdırma seçeneği sunar. )) (echo "Yeni kayıt rdcreatedbaşarıyla"; ) else (echo "Kayıt oluşturulamıyor";) // Bu noktada değişken verileri değiştirebilir ve veritabanı verilerine başka veriler eklemek için bir sorgu çalıştırabilirsiniz $ first_Name = "John"; $ last_Name = "Smith"; $ e-posta = " [e-posta korumalı]"; $ my_Insert_Statement-> execute (); // Değişken değiştirildiğinde tekrar çalıştır if ($ my_Insert_Statement-> execute()) (echo" Yeni kayıt başarıyla oluşturuldu ";) else (echo" Kayıt oluşturulamıyor ";

28, 29 ve 30. satırlarda veritabanı nesnesinin bindParam() yöntemini kullanıyoruz. Ayrıca bir öncekinden çok farklı olan bir bindValue() yöntemi vardır.

  • bindParam () - Bu yöntem, execute() yöntemine ulaşıldığında verileri değerlendirir. Komut dosyası yürütme () yöntemine ilk ulaştığında, $ first_Name öğesinin "Thom" ile eşleştiğini görür. Daha sonra bu değeri bağlar ve isteği çalıştırır. Komut dosyası ikinci yürütme () yöntemine ulaştığında, $ first_Name öğesinin artık "John" ile eşleştiğini görür. Daha sonra bu değeri bağlar ve sorguyu yeni değerlerle yeniden başlatır. Bir keresinde bir sorgu tanımladığımızı ve onu betiğin farklı noktalarında farklı verilerle yeniden kullandığımızı hatırlamak önemlidir.
  • bindValue () - Bu yöntem, bindValue () değerine ulaşılır ulaşılmaz verileri değerlendirir. $ first_Name "Thom" olarak ayarlandığından, bindValue () öğesine ulaşıldığında, $ my_Insert_Statement öğesinde execute() her çağrıldığında kullanılacaktır.
    $ first_Name değişkenini yeniden kullandığımızı ve ona ikinci kez yeni bir değer atadığımızı unutmayın. Komut dosyasını çalıştırdıktan sonra, komut dosyasının sonundaki $ first_Name değişkeninin "John" değerine sahip olmasına rağmen, her iki ad da veritabanında belirtilecektir. PHP'nin çalıştırmadan önce tüm betiği kontrol ettiğini unutmayın.

Komut dosyasını bindParam'ı bindValue ile değiştirecek şekilde güncellerseniz, veritabanına iki kez "Thom Vial" eklersiniz ve John Smith yoksayılır.

Adım 3 - Başarının Teyidi ve Problem Çözme

Veritabanına satır ekleme isteği başarılı olursa, aşağıdaki mesajı göreceğiz:

Yaygın hataları ortadan kaldırmak

MySQLi

Aksi takdirde, bir hata mesajı görüntülenecektir. Örneğin, kodda bir sözdizimi hatası yapalım ve aşağıdakileri alıyoruz:

Kodun ilk kısmı tamam, bağlantı başarıyla kuruldu, ancak SQL sorgusu başarısız oldu.

"Hata: INSERT INTO Öğrenciler (ad, soyad, e-posta) DEĞERLER (" Thom "," Flakon "," [e-posta korumalı]") SQL sözdiziminizde bir hata var; yakın" (ad, soyadı, e-posta) VALUES ("Thom", "Vial", " [e-posta korumalı]")" 1. satırda "

Komut dosyasının başarısız olmasına neden olan bir sözdizimi hatası oluştu. Hata buradaydı:

$ sql = "Öğrencilere GİRİN (adı, soyadı, e-postası) DEĞERLER (" Thom "," Flakon "," [e-posta korumalı]")";

Normal parantezler yerine kaşlı ayraçlar kullandık. Bu yanlıştır ve komut dosyası bir sözdizimi hatası oluşturdu.

PDO

PDO bağlantısının 7. satırında, hata modu "tüm istisnaları görüntüle" olarak ayarlanmıştır. Farklı bir değer verilmişse ve istek başarısız olsaydı, herhangi bir hata mesajı almazdık.

Bu ayar yalnızca bir komut dosyası geliştirirken kullanılmalıdır. Etkinleştirildiğinde, güvenlik nedeniyle daha iyi gizlenen veritabanı ve tablo adları görüntülenebilir. Yukarıda açıklanan durumda, normal parantezler yerine küme parantezleri kullanıldığında, hata mesajı şöyle görünür:

Önemli hata: "SQLSTATE: Sözdizimi hatası veya erişim ihlali: 1064" mesajıyla birlikte yakalanmayan istisna "PDOException" SQL sözdiziminizde bir hata var; "(ad, soyadı, e-posta) VALUES (" Thom "," Vial "," yakınında kullanılacak haklar sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuzu kontrol edin [e-posta korumalı]")" 1. satırda "

Diğer olası sorunlar:

  • Sütunlar yanlış (adlarında var olmayan sütunlar veya yazım hatası).
  • Farklı türdeki bir sütuna bir tür değer atanır. Örneğin, 47 sayısını Name sütununa girmeye çalışırsanız, bir hata alırsınız. Bu sütunda bir dize değeri kullanmalısınız. Ancak bir sayıyı tırnak içinde belirtmiş olsaydık (örneğin, "47") işe yarardı, çünkü bu bir dizedir.
  • Var olmayan bir tabloya veri girilmeye çalışıldı. Tablo adında bir yazım hatasının yanı sıra.

Verileri başarıyla girdikten sonra veritabanına eklendiğini göreceğiz. Aşağıda, verilerin eklendiği bir tablo örneği verilmiştir.

Bu yazıda size söylemek istiyorum Formda girilen veriler Veritabanına nasıl aktarılır... Ve böylece iki alana sahip olacağımız basit bir form oluşturuyoruz: kullanıcı adı ve e-postası:

Adınız:
E-posta adresiniz:


Bu form yeni bir kullanıcı kaydetmek, haber göndermek, istatistik toplamak ve herhangi bir şey için kullanılabilir... Genel olarak, bir kullanıcı verilerini bu forma doldurur: ad ve posta, bir düğmeye tıklar ve ardından veriler bir php betiğine girer:

$ isim = $ _POST ["isim"]; $ eposta = $ _POST ["eposta"]; $ sonuç = mysqli_query ("INSERT INTO kullanıcı (isim, e-posta) DEĞERLER (" $ isim "," $ e-posta ")"); if ($ sonuç) (echo "Veriler başarıyla kaydedildi!";) else (echo "Bir hata oluştu, lütfen tekrar deneyin.";)


Bu senaryoda neler oluyor? Şimdi çözelim!
Forma girilen veriler, POST yöntemiyle (yukarıda yazılan) php betiğine aktarılır ve $ _POST global dizisi kullanılarak veriler $ name ve $ email değişkenlerine dönüştürülür:

$ isim = $ _POST ["isim"]; $ eposta = $ _POST ["eposta"];


Değişkenler veritabanına girilmeye hazır olduktan sonra bir istek oluşturuyoruz. Ama önce scriptleriniz veritabanına bağlı olmalı, veritabanına nasıl bağlanılır, bu konuya yazdım:İsteğin kendisi şöyle görünür:

$ sonuç = mysqli_query ("INSERT INTO kullanıcı (isim, e-posta) DEĞERLER (" $ isim "," $ e-posta ")");


Bu kodda user tablosunda bulunan name ve email hücrelerine şu değişkenlerin ekleneceğini belirtmiştik: $ name ve $ email.
Ayrıca, her şey yolunda giderse, durumdan bir mesaj alırız:

Veri başarıyla kaydedildi!


Herhangi bir sorun ortaya çıkarsa ve veriler girilmezse bir hata mesajı alırız:

Bir hatayla karşılaşıldı. Lütfen tekrar deneyin.


Bu kadar!

*** *** *** *** ***

İsterseniz bilgi girmek için daha fazla alan ekleyebilirsiniz, örneğin kullanıcının şehrini girmek için bir alan eklememiz gerekiyor. Zaten hazır bir betiğimiz var (yukarıda yazılmış), şimdi sadece alanı ekliyoruz Senin şehrin, değişkeni adlandıracağız: $ city. Ve böylece veri giriş formunda, sonra:

E-posta adresiniz:


Ekle:

Senin şehrin:


Bir php betiğinde, sonra:

$ eposta = $ _POST ["eposta"];


Ekle:

$ şehir = $ _POST ["şehir"];


Ve tabii ki, isteği de şu şekilde ekliyoruz:

$ sonuç = mysqli_query ("INSERT INTO kullanıcı (isim, e-posta, şehir) DEĞERLER (" $ isim "," $ e-posta "," $ şehir ")");


İşte bitirmeniz gerekenler:
Giriş formu:

Adınız:
E-posta adresiniz:
Senin şehrin:


Senaryo:

$ isim = $ _POST ["isim"]; $ eposta = $ _POST ["eposta"]; $ şehir = $ _POST ["şehir"]; $ sonuç = mysqli_query ("INSERT INTO kullanıcı (isim, e-posta, şehir) DEĞERLER (" $ isim "," $ e-posta "," $ şehir ")"); if ($ sonuç == true) (echo "Veriler başarıyla kaydedildi!";) else (echo "Bir hata oluştu, lütfen tekrar deneyin.";)


Gördüğünüz gibi, karmaşık bir şey yok! Gerekirse, başka bir alan ekleyebilirsiniz ve daha fazlasını ve daha fazlasını ...

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ık gerekli olduğu için tabloya yeni kayıtlar ekle, ve bunu otomatik modda yapmak için, bu materyal çalışma için gereklidir.

Başlamak Tabloya yeni bir kayıt eklemek için SQL sorgusu:

INSERT INTO kullanıcıları (giriş, geçiş) değerleri ("TestUser", "123456")

Bir giriş eklerken, ilk komut " TAKIN", ardından kaydı eklediğimiz tablonun adı. Ardından parantez içinde doldurmak istediğimiz alanların adları gelir. Daha sonra kelimeden 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üncelleme, bunun için aşağıdakiler var SQL sorgusu:

GÜNCELLEME kullanıcıları SET login = "TestUser2", pass = "1234560" WHERE login = "TestUser"

Bu sorgu, yapıya sahip olduğu için daha karmaşıktır " NEREDE", ancak bununla ilgili daha fazlası aşağıda. Önce komut gelir" GÜNCELLEME"ardından tablo adı, ardından" AYARLAMAK"değiştirmek istediğimiz tüm alanların değerlerini açıklıyoruz. Basit olurdu ama şu soru ortaya çıkıyor:" Hangi kaydı güncellemelisiniz?". Bunun için var" NEREDE". Bu durumda, kaydı, alanı güncelliyoruz" giriş yapmak"hangisi önemli" TestKullanıcısı". 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 riskiyle karşı karşıya kalırsınız.

Biraz daha konuşalım" NEREDE". Eşitlik için basit testlere ek olarak, mantıksal işlemlerin yanı sıra eşitsizlikler de vardır: VE ve VEYA.

GÜNCELLEME kullanıcıları SET login = "TestUser2", pass = "1234560" WHERE id< 15 AND login="TestUser"

NS SQL sorgusu bu kayıtları güncelleyecek İD hangileri daha az 15 VE alan " giriş yapmak"anlamı var" TestKullanıcısı". Umarım tasarımı anlamışsınızdır." NEREDE"çünkü çok önemli. Aynen öyle." NEREDE"ne zaman kullanılır tablolardan kayıt alma, ve bu, veritabanlarıyla çalışırken en sık kullanılan görevdir.

Ve son olarak, basit bir tane Bir tablodan kayıtları silmek için SQL sorgusu:

DELETE FROM users WHERE login = "TestUser2"

" komutundan sonra SİL"Kayıtları silmek istediğiniz tablonun adıdır. Daha sonra " WHERE " yapısını açıklıyoruz. Kayıt açıklanan koşullara uyuyorsa silinecektir. NEREDE", herhangi bir sayıda silinebilir.

Bu dersimizde kullanıcının forma girdiği verilerin MySql veritabanına nasıl girileceğini öğreneceğiz. Bir web sayfasının kodundan MySql veritabanına nasıl bağlanacağınızı, ayrıca verileri işleyip veritabanına nasıl ekleyeceğinizi öğreneceksiniz.


Son derste Denver'ı bilgisayarınıza nasıl kuracağınızı, kendi veritabanınızı nasıl oluşturacağınızı, bunun için bir kullanıcıyı, veritabanında nasıl tablo oluşturacağınızı anlattım ve tek kayıtla doldurduk.

Bu derste, kullanıcı bilgilerini girmek için bir html belgesi ve bu bilgileri işlemek için bir php dosyası oluşturacağız, bu verileri işleyecek, MySql veritabanına bağlanacak ve oraya yeni kayıtlar ekleyeceğiz.

Sözlerden eylemlere geçerek, başlayalım.

Web sayfasından MySql veritabanına özel veriler ekleyin

İlk adım: veri girişi için html formu oluşturun

En başından itibaren php, MySql ile çalışmaya ve yerel bilgisayarda yazılan kodu test etmeye hazırlanmamız gerekiyor. Bunun için:

1. Bilgisayarınızda Denwer'ı başlatın.

2. Denver tarafından oluşturulan sanal diski açın (örneğin, bu diske “Z” sahibim). Açın, sonra: home - localhost - www - orada yeni bir klasör oluşturun ve ona bir ad verin (“db1” adını vereceğim).

3. Adobe Dreamweaver'da çalışıyorsanız, site yöneticisine gidin, orada "Yeni" düğmesini tıklayın, yeni oluşturulan klasörün yolunu yol olarak seçin, yukarıdaki alanda siteye bir ad verebilirsiniz, ardından tıklayın. Kaydet - Bitti. Tüm bunlardan sonra, klasörünüz Adobe Dreamweaver'ın sağ bölmesinde görünecektir.

1. Şimdi normal bir html dosyası oluşturacağız (buna info_form.html adını vereceğiz ve yeni oluşturduğumuz db1 klasörüne kaydedeceğiz) ve form kodunu buraya bilgi girmek için yazacağız. new_db veritabanındaki users tablomuz kullanıcının doldurabileceği 4 alana sahiptir (id alanı otomatik olarak doldurulacaktır). Buna dayanarak, şöyle bir kod oluşturabilirsiniz:

İsimsiz döküman










Burada formumuzun "action" parametresinde bir dosya var. form.php... Daha sonra oluşturacağımız bir işleyici dosyası olacak.

Ayrıca formumuza stil vermek için bir style.css dosyası oluşturalım. Zaten koda dahil edilmiştir, bu yüzden geriye kalan tek şey onu oluşturmak, onu html dosyasıyla aynı klasöre yerleştirmek ve içine aşağıdaki kodu yazmak:

Gövde (genişlik: 400 piksel; kenar boşluğu: 0 otomatik; arka plan: # F8F4B6;) etiketi (ekran: blok; kayan nokta: sol; genişlik: 150 piksel; dolgu: 0 10 piksel; kenar boşluğu: 18 piksel 0 0; metin hizalama: sağa;) # gönder (kayan: sağ; kenar boşluğu: 5px 50px 10px 0;)

Form şimdi şöyle görünür:

Ancak, verileri girip formu göndermeye çalışırsanız, scripts dizininde hiçbir form.php dosyası bulunmadığından bir hata görürsünüz.

Bir işleyici dosyası oluşturmak bir sonraki görevimizdir.

2. Klasörün içine girelim db1 adıyla bir klasör oluşturun "Kodlar"... İçinde MySql veritabanı ile etkileşim kurmak için tüm komut dosyalarımızı kaydedeceğiz.

Klasör oluşturulduktan sonra yeni bir php dosyası oluşturun ve scripts klasörüne isim altında kaydedin. form.php.

Ancak doğrudan bilgi işleyici dosyasıyla başlamadan önce, önce veritabanımıza bağlanmalısınız. Bunun için ayrı bir dosya oluşturmanızı öneririm ve işte nedeni:

Büyük olasılıkla projenizde MySql veritabanına yalnızca bir dosyadan bağlanmanız gerekecek. Kural olarak, çeşitli proje dosyaları veritabanı ile etkileşime girer.
Bu tür her dosyaya aynı veritabanı bağlantı kodunu yazmak çok pratik değildir. Ve örneğin böyle 50 dosya varsa ve bir gün kullanıcının şifresini değiştireceksiniz ve bu 50 dosyanın hepsini aramanız ve her birinde düzeltme yapmanız gerekecek.
Bağlantı için, MySql veritabanına bağlantı olması gereken dosyaların her birine bağlanacak ayrı bir dosya kullanmak çok daha uygundur. Bu durumda, yalnızca bir dosyada düzeltme yapmanız gerekir.

O halde yeni bir php dosyası oluşturalım, adını verelim connect.php ve komut dosyaları klasörüne koyun. İçinde MySql veritabanımıza bağlanmak için kodu ve ayrıca ortaya çıkarsa hataları bildirecek kodu yazacağız. Lütfen kullanıcı adınızı, şifrenizi ve veritabanı adınızı parametre olarak girmeniz gerekeceğini unutmayın. Ana bilgisayar localhost olmalıdır.

Veritabanına bağlanırken hata oluştu! ". MySQL Hatası ()."

"); mysql_select_db (" new_db ") // parantez içindeki parametre (" bağlanılacak tabanın adı ") veya die ("

Veritabanı seçim hatası! ". MySQL Hatası ()."

"); ?>

Şimdi form.php dosyasına gidelim ve aşağıdaki kodu kullanarak connect.php dosyasını ona bağlayalım:

Formu şimdi göndermeye çalışırsanız, gönderdikten sonra boş bir web sayfası göreceksiniz. Bu iyi, çünkü üsse yeni bağlandık ve henüz başka bir şey göstermedik.

Bir hata mesajı görürseniz, tüm parametrelerin (kullanıcı adı, parola, ana bilgisayar adı: localhos, veritabanı adı) doğruluğunu kontrol edin ve ayrıca Denver'ınızın etkinleştirildiğinden emin olun.

3. MySql veritabanına başarıyla bağlandık ve şimdi ihtiyacımız var forma girilen verileri dosya işleyicimize kabul edin... Html belgesinde bulunan "isim" öznitelikleri bu konuda bize yardımcı olacaktır.

Verileri almak için web formundaki tüm bilgileri bize sağlayan özel bir php değişkeni kullanacağız. Bu değişkene “$ _REQUEST” adı verilir.

connect.php dosyasını bağladıktan sonra, aşağıdaki kodu form.php dosyasına ekleyin:

$ first_name = $ _REQUEST ["first_name"]; $ last_name = $ _REQUEST ["last_name"]; $ eposta = $ _REQUEST ["eposta"]; $ facebook = $ _REQUEST ["facebook"];

4. Dosyadaki verileri aldık ve değişkenlere koyduk. şimdi ihtiyacın var bu verileri MySql veritabanı tablomuza gönderin... Bunu yapmak için aşağıdaki kodu yazmanız gerekir:

$ insert_sql = "INSERT INTO kullanıcıları (ad, soyadı, e-posta, facebook)". "DEĞERLER (" ($ ad_adı) "," ($ soyadı) "," ($ e-posta) "," ($ facebook) ");"; mysql_query ($ insert_sql);

Burada öncelikle “users” tablosunun ilgili alanlarına uygun değişkenleri eklememiz gerektiğini söyleyen bir sorgu oluşturuyoruz. Bu sorguyu “$ insert_sql” değişkenine koyuyoruz. Ardından mysql_query özel fonksiyonunu kullanarak bu sorguyu çalıştırıyoruz.

Şimdi formu doldurup gönderirseniz ve ardından veritabanınızın “kullanıcılar” tablosuna bakarsanız, gönderimden sonra orada görünen yeni bir kayıt göreceksiniz.

5. Web sayfasından MySql veritabanı tablosuna yeni bir kayıt ekledik. Şimdi verilerimizin eklendiği formata biraz değinmek istiyorum.

Öncelikle formu dolduran bir kişinin bilgi girişinin başında gereksiz boşluklar bırakabileceği duruma dikkat etmeniz gerekiyor. Kesilmeleri gerekiyor.

İkincisi, bir Facebook alanımız var. Gelecekte bu bilgileri bir bağlantı olarak görüntülemek istersek, bu alandaki verilerin doğru biçimde (yani "http://www.facebook.com/ facebook id") saklanmasına dikkat etmeliyiz. Ancak kullanıcı bu verileri her zaman ihtiyacımız olduğu gibi girmeyecektir. Girebilir: "www.facebook.com/ facebook id", "facebook.com/ facebook id" veya sadece "/ facebook id".

Bu durumlardan kaçınılmalıdır. Bunu yapmak için kodumuzu değiştirelim. İşlevi kullanarak olası fazladan boşlukları kestik kırpmak, ve işlev, facebook için girilen url'nin doğruluğunu kontrol edecektir. preg_match... Böylece, form.php dosyasının tüm kodu şöyle görünecektir:

İsimsiz döküman Veritabanına yeni kayıt eklendi!

"; ?>

fonksiyon hakkında preg_match:
Bu, normal ifadelerle arama yapmak için bir işlevdir.

Parantez içindeki ilk parametre normal ifade, ikincisi aranacak dizedir.

İşlev yalnızca ilk eşleşmeyi döndürür: 0 - eşleşme yoksa, 1 - eşleşme varsa.

Şimdi herhangi bir alanı doldurmanın başında gereksiz boşluklar bırakarak ve http:// veya sadece facebook ID girmeden facebook adresini girerek formu bilinçli olarak doldurmaya çalışın. Bir istek gönderin ve ardından veri tabanına gidin ve tam olarak doğru olmayan doldurmaya rağmen verilerin tam olarak ihtiyacımız olan forma sahip olduğunu göreceksiniz.

Bunun üzerine bu dersi bitireceğim. Bu dersin tüm dosyalarını kaynaktan indirebilirsiniz (sadece connect.php dosyasındaki parametreleri kendinize göre değiştirmeyi unutmayın).

Ve bir sonraki derste, MySql veritabanından bilgi çıkarmayı, gerekli kayıtları seçmeyi ve ekranda görüntülemeyi öğreneceğiz. Bir sonraki dersi kaçırmamak için aşağıda gördüğünüz abonelik formunu kullanarak blog güncellemelerine abone olun.

Yorumlarınızı bırakın ve sosyal medya butonlarını kullanarak arkadaşlarınızla paylaşın.

İyi şanslar ve bir sonraki derste görüşürüz!

Bu eğitimde, doğrudan PHP betiklerinizden veri tabanına nasıl veri ekleyeceğinize bakacağız.

SQL kullanarak veri ekleme

Veritabanına veri eklemek için SQL'i, veritabanları ve tablolar oluşturmak için SQL'i kullandığınız şekilde kullanırsınız. SQL sorgusunun sözdizimi aşağıdaki gibidir:

EKLE TabloAdı (sütun1, sütun 2, ...) DEĞERLER (değer1, değer 2, ...)

Gördüğünüz gibi, tek bir SQL deyiminde birden çok sütunu virgülle ayrılmış bir listede belirterek güncelleyebilirsiniz. Ancak elbette yalnızca bir sütun ve bir değer de belirtebilirsiniz. Bu SQL deyiminde belirtilmeyen sütunlar boş kalacaktır.

Örnek: Bir masaya yeni bir kişi ekleme

Bu örnekte, Ders 18'deki veritabanını kullanıyoruz. Diyelim ki veritabanına bir kişi eklemek istiyoruz. Olabilir Gus kaz telefon numarası ile 99887766 ve doğum tarihi 1964-04-20 .

SQL ifadesi şöyle görünebilir:

$ strSQL = "Kişilere GİRİN (Ad, Soyad, Telefon, Doğum Tarihi) DEĞERLER (" Gus "," Kaz "," 99887766 "," 1964-04-20 ")";

Gördüğünüz gibi SQL deyimleri oldukça uzun olabilir ve kolayca kaybolabilirsiniz. Bu nedenle, SQL ifadesini biraz farklı yazmak daha iyidir:

strSQL = "İNSANLARA GİRİN ("; strSQL = strSQL. "İlk adı,"; strSQL = strSQL. "Soy isim," strSQL = strSQL. "Telefon,"; strSQL = strSQL. "doğum)"; strSQL = strSQL. "DEĞERLER ("; strSQL = strSQL. "" Gus ","; strSQL = strSQL. "" Kaz ","; strSQL = strSQL. "" 99887766 ","; strSQL = strSQL. "" 1964-04-20 ")"; mysql_query ($ strSQL) veya die (mysql_error());

Burada SQL ifadesi, ifadeyi küçük parçalara bölerek ve ardından bunları bir değişkende birleştirerek oluşturulur. $ strSQL.

Pratikte, bir yöntemin uygulanmasında veya diğerinde hiçbir fark yoktur, ancak büyük tablolarla çalışırken "izleme" yapabilmek son derece önemli hale gelir, bu nedenle en uygun yöntemi seçin.

Gus Goose'u veritabanına eklemek için aşağıdaki kodu deneyelim:

Veritabanına veri ekleme // Veritabanı sunucusuna bağlanın mysql_connect ("mysql.myhost.com", "user", "susam") veya die (mysql_error ());// Veritabanı seçimi mysql_select_db ("veritabanım") veya die (mysql_error ()); // SQL deyimini oluşturun $ strSQL = "İNSANLARA EKLE ("; $ strSQL = $ strSQL. "İlk adı,"; $strSQL = $strSQL. "Soy isim,"; $ strSQL = $ strSQL. "Telefon,"; $strSQL = $strSQL. "Doğum günü)"; $strSQL = $strSQL. "DEĞERLER ("; $strSQL = $strSQL. "" Gus ","; $strSQL = $strSQL. "" Kaz ","; $ strSQL = $ strSQL. "" 99887766 ","; $ strSQL = $ strSQL. "" 1964-04-20 ")"; // SQL deyimi yürütülür mysql_query ($ strSQL) veya die (mysql_error()); // Bağlantıyı kapat mysql_close(); ?>

Veritabanı güncellendi!

Kullanıcı girdisini veritabanına kaydetme

Muhtemelen Ders 11'de olduğu gibi bunun için bir form oluşturabileceğinizi fark etmişsinizdir ve formdaki değerler bir SQL deyimine eklenebilir. Diyelim ki basit bir formunuz var:

Bu form bir dosyaya gönderilir insert.php burada, Ders 11'de gösterildiği gibi, formun içeriğini talep ederek kullanıcı girdisi alabilirsiniz. Bu özel durumda, SQL ifadesi şöyle olabilir:

strSQL = "INSERT INTO kişi (FirstName) değerleri (" ". $ _POST [" FirstName "]." ")"

Benzer şekilde, çerezlerden, oturumlardan, sorgu dizelerinden vb. veriler talep edebilirsiniz.

En yaygın başlangıç ​​hataları

İlk başta, veritabanını güncellemeye çalışırken muhtemelen bir sürü hata mesajı alacaksınız. Bir veritabanıyla çalışırken, hiçbir hata tamamen kabul edilemez. Yanlış yerleştirilmiş bir virgül, veritabanının güncellenmediği anlamına gelebilir ve bir hata mesajı alırsınız. Aşağıda en yaygın hataları açıklıyoruz.

Geçersiz veri türü

Sütunun veri ve veri türünün eşleşmesi önemlidir. Her sütun belirli bir türde veri içerebilir. Aşağıdaki ekran görüntüsü, örneğimizdeki "kişiler" tablosunun veri türlerini göstermektedir.

Örneğin, bir veri alanına metin veya sayı eklemeye çalışırsanız bir hata verilir. Bu nedenle, veri türünü mümkün olduğunca kesin olarak ayarlayın.

En yaygın veri türleri aşağıda listelenmiştir:

Anlam Veri tipi Boyut
CHR
Metin veya metin ve sayıların birleşimi. Hesaplamalarda kullanılmayan sayılar için de kullanılabilir (örn. telefon numaraları). 255 karaktere kadar - "Uzunluk" bölümünde belirtilen uzunluk
METİN
Büyük metin blokları veya metin ve sayıların birleşimi. 65.535 karaktere kadar
INT
Matematiksel hesaplamalar için sayısal veriler. 4 bayt
TARİH
YYY-AA-GG formatındaki tarihler 3 bayt
ZAMAN
ss: mm: ss biçimindeki süre 3 bayt
DATETIME
YYY-AA-GG formatında tarih ve saat ss:dd:ss 8 bayt

Tırnak veya ters eğik çizgi içeren SQL ifadeleri

Tek tırnak ("), çift tırnak (") veya ters eğik çizgi (\) karakterleri içeren metin eklemeye çalışırsanız, kayıt veritabanına eklenmez. Çözüm, veritabanı sorgularına eklendiğinde anımsanması gereken karakterlerin önüne ters eğik çizgi koymaktır.