PHP aracılığıyla MySQL veritabanına resim ekleme. PHP kodunu kopyalayarak MySQL veri tabanına nasıl yazılır PHP ile mysql'ye ekleme

Son güncelleme: 1.11.2015

Bunları dolaylı olarak eklemek için "INSERT" viraz kullanılır:

$query ="DEĞERLERE GİRİN(BOŞ, "Samsung Galaxy III","Samsumg")";

Viraz "INSERT" tabloya bir satır ekler. INTO anahtar sözcüğünden sonra tablonun adı belirtilir ve VALUES anahtar sözcüğünden sonra yaylarda tüm sütunların değerleri belirtilir. Tabloda üç sütunumuz olduğu için üç değer gösterebiliriz.

Yani, son konularda olduğu gibi, tabloları katlarken, sonraki sütun sayısını belirttiler: id, name, company, daha sonra bu durumda, id sütunu için NULL değeri, ad için "Samsung Galaxy III", ve şirket için "Samsumg".

id sütunu AUTO_INCREMENT olarak ayarlanmışsa, yenisi için yeni bir sayısal değer belirtmemize gerek yoktur ve bir NULL değeri iletebiliriz ve MySQL bir sonraki kullanılabilir değeri verebilir.

Şimdi popodan veri eklenmesine bakalım. Bir dosya oluşturalım oluştur.php bir araya gelmesiyle:

Veri eklendi"; ) // bağlantı kapatılıyor mysqli_close($link); ) ?>

Yeni bir model ekle

Modeli girin:

Virobnik:

Burada kod, formların işlevselliği ile ilişkilendirmelerin veri tabanı ile ilişkilidir: ek formlar için veri tabanına eklemek üzere veriler girilir.

MySQL Güvenliği

Burada mysqli_real_escape_string() fonksiyonunu büktük. Arka arkaya karakterler için bir ekran görevi görecek ve daha sonra SQL'in başlangıcında kazanacaktır. Parametrelerin, taranması gereken o satırdaki bağlantı nesnesini nasıl kabul edeceği.

Bu şekilde, aslında iki karakterden kaçmayı durduracağız: önce mysqli_real_escape_string() yardımcı fonksiyonunun arkasındaki sql-virüsü için ve sonra htmlentities() yardımcı fonksiyonunun arkasındaki html için. Bu, iki tür saldırıya karşı savunma yapmamızı sağlar: XSS saldırıları ve SQL enjeksiyonu.

Onu yardımcınız ile tanıyacaksınız, veri tabanını kendi veri tabanınızdan canlandırmaya nasıl başlayacağınız. PHP senaryo. Anlıyorsun MySQL tablosuna kayıt ekleme, papaz php kodu. Her şeyden önce, diğer yardımcılarımıza, PHP ve veritabanlarıyla çalışmanın ana adımlarının nasıl açılacağına bakın - PHP'den MySQL veritabanına bağlanma (İngilizce).

Koçandan önce, saldırganın varlığını tersine çevirin:

  • Barındırma kontrol panelinize erişim

Krok 1 - Tablo oluşturma

Nasampered, verileriniz için bir tablo oluşturmamız gerekiyor. Prosedür daha da basit, yaku'da çalışabilirsiniz. phpMyAdmin hosting altındaki panelinizden. MySQL veritabanları oluşturma sürecini önceki bir asistanla zaten anlatmıştık, bu yüzden bu anı burada atlayacağız.

PhpMyAdmin tarafına giriş yaptıktan sonra benzer bir resim göreceksiniz:

ismin altında bir tablo oluşturalım öğrenciler veritabanımız için u266072517_adı. butonu ile yeni bir tablo oluşturabilirsiniz. Tablo Oluştur. Lütfen yeni bir taraf eklerseniz, tablonuz için gerekli tüm verileri girebilirsiniz:

Tablo oluşturmanın en basit yolu, tabloların/veritabanının yapısı hakkında daha fazla bilgiyi kaldırmak için, dış görünüm alanı için ince ayar yapabilir, phpMyAdmin'in (İngilizce) resmi belgelerine geri dönebilirsiniz.

Burada alanların birkaç basit açıklamasını sunacağız, böylece vikoristovuvat olacağız:

  • İsim- alanın adı. Tablonuzun en üstünde görüntülenecektir.
  • tip– burada alanın türünü ayarlayabilirsiniz. Örneğin, biz seçiyoruz varchar, bunun için burada bir dizi isim eklemek gerekiyor (sayı değil, є harfleri olanlar için).
  • Uzunluk/Değerler- Bu alandaki kaydın maksimum süresinin atanması için kazanın.
  • dizin– “Kimlik” alanımız için “Birincil” dizini seçtik. Tabloları katlarken anne için bir kimlik alanı önerilir. Tablolarda vzaimosv'yazku iç içe geçmişse, tablolardaki indeksler için vikoristovuєtsya kazandı. Burada da görebilirsiniz "A_I" bu ne demek Otomatik artış. Bu ayar indeksi (1,2,3,4…) otomatik olarak artıracaktır.

basmak Kayıt etmek ve tablonuz oluşturulacaktır.

Krok 2 - PHP kodu oluşturma ve MySQL tablosuna kayıt ekleme

Seçenek 1 - MySQLi yöntemi

Nasampered, bir veri tabanına sahip bir veri tabanı kurmak gerekiyor, ileri yardımcımızla sgіdno. MySQL tablosuna bir kayıt ekleme isteği ile SQL'den devam edebilirsek - SOKMAK. Bağlantı yöntemi ve ekleme yöntemiyle kodun en son örneği:

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

Bu sıralamada, kodun ilk kısmı (satırlar 3 – 18 ) veri tabanına bağlantı kurulumunun bir kısmına kadar görülebilir. Bu kısımdan tekrar geçmeyeceğiz, eğer deri sırasının ne anlama geldiğini bilmek istiyorsanız, Danimarkalıların (İngilizce) tabanına bağlanmak gibi ön ker_vnitstva'ya dönün.

Başlayalım 19 :

$sql = "INSERT INTO Öğrenciler (ad, soyad, e-posta) DEĞERLER ("Thom", "Şişe", " [e-posta korumalı]")";

En önemli kod satırı, yardımımızda anlattığımız bıyığı soymaya gerek yok - MySQL tablosuna veri tabanına bir kayıt eklemek. TAKIN– belirlenen MySQL veritabanı tablosuna bir kayıt ekleyen tse viraz. Uygulamamızda tabloya veri ekliyoruz. öğrenciler.

Uzaklara, kollara koşarak, anlamlarını ekleyeceğimiz tabloların alanlarını belirtiyoruz: (ad, soyad, e-posta). Veriler şarkı söyleme sırasına eklenecektir. nasıl yazıyoruz (e-posta, soyadı, ad) Değerler farklı bir sırayla eklenecektir.

Değere adım atın DEĞERLER. Burada belirtilen alandan önce değerlerimizi ayarlıyoruz. Bu rütbede, cilt alanı anlamının farkındadır. Örneğin, bizim vipadka'mız bir anlığına göz atacak: ad=Thom, soyadı=Şişe, e-posta= [e-posta korumalı] .

Söylemek önemli olan, buradaki formum nedir? sorgulanan SQL, PHP kodunu değiştirerek. Pençelerde SQL zapit vinni buti ukladenі. Bizim durumumuzda, hepsi paws ve $sql = tse SQL'den sonra gelenler arasında istenir.

Kodun sonraki kısmı ( 20 – 22 satırlar) talebimizi başlatmak ve anketin başarısını yeniden doğrulamak:

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

Lansmanların doğru beslenmesi için başarı hakkında bilgilendirileceksiniz.

kalan kısım ( 22 – 24 satırlar) araştırmamızın kasıtsız görüntüsünün başka bir hatırlatıcısını göstermek için:

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

Bu kod, sanki bir şeyler ters gitmiş gibi bize af hakkında bir hatırlatma gösterir.

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

Ön uçta olduğu gibi, yeni bir PDO nesnesi oluştururken olduğu gibi, viconty'nin önündeki veri tabanına bağlanmamıza ihtiyacımız var - ön ker_vnitstvo rozpovidaє, nasıl olması gerektiği hakkında. MySQL - tse PDO nesnesi veritabanına bağlantılar, talebin hazırlanması ve başlatılması için farklı PDO 'yöntemleri' (orijinal işlevler, şarkı nesnesinin bir parçası gibi) seçmekten sorumluyuz. Nesnelerin yöntemleri aşağıdaki sırayla çağrılır:

$the_Object->the_Method();

PDO, düzenlemeden önce SQL kodunu hazırlamanıza olanak tanır. SQL isteği, başlamadan önce hesaplanır ve düzeltilir. Böylece form alanına SQL kodu yüklenerek basit bir SQL enjeksiyon saldırısı yapılabilir. Örneğin:

// Kullanıcı bunu oturum açma formunun kullanıcı adı alanına yazar"; DROP DATABASE user_table; // Son sorgu şu olur "SELECT * FROM user_table WHERE username = thom"; DROP DATABASE user_table;

Skіlki SQL kodu sözdizimsel olarak doğru, kiminle soyulacağı DROP DATABASE user_table yeni SQL isteği ve kayıt tablonuz silindi. Hazırlanan Virazi, sembollere izin vermiyor і ; çıkış isteğini tamamlamak için, bu talimat VERİTABANI BIRAK kimse kazanmaz.

Zavjdi PDO'dan veri tabanından veri alıyorsanız veya yönetiyorsanız, hazırladığınızı fethedin.

Hazırlanmakta olan muzaffer dil için daha iyi bir yöntem gibi yeni bir değişim yaratmak gerekiyor. Hazırlamak() veritabanı nesnesi.

Doğru görünen kod şöyle görünür:

$sunucuadı = "mysql.hostinger.com"; $veritabanı = "u266072517_name"; $kullanıcıadı = "u266072517_user"; $şifre = "buystuffpwd"; $sql = "mysql:host=$sunucuadı;dbname=$veritabanı;"; $dsn_Options = ; // PDO kullanarak MySQL veritabanına yeni bir bağlantı oluşturun, $my_Db_Connection bir nesne denemesidir ( $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options); echo "Başarıyla bağlandı"; ) catch (PDOException $ error) ( echo "Bağlantı hatası: " . $error->getMessage(); ) // Değerinize uyacak kişinin parametrelerini ayarlayın $first_Name = "Thom"; $last_Name = "Şişe"; $e-posta = " [e-posta korumalı]"; // Burada, parametre olarak korumayı seçtiğiniz Veritabanı nesnesinin // SQL SQL başlık () yönteminin ve hedef olarak yer tutucuların є olduğu bir seçenek oluşturduk: 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 kullanarak her bir yer tutucunun gerçekte hangi değişkene başvurduğunu komut dosyasına söyleyeceğiz // First Parameter yukarıdaki ifadede yer tutucudur - İkinci Parametre, $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_name bindParam(:email, $email); // Sorguyu az önce tanımladığımız verileri kullanarak yürütün // execute() yöntemi başarılıysa TRUE, değilse FALSE döndürür, mesajlarınızı buraya yazmanıza izin verir if ( $my_Insert_Statement->execute()) ( echo "Yeni kayıt başarıyla oluşturuldu"; ) el se (echo "Kayıt oluşturulamıyor"; ) // Bu adımla, bunlar parametrelerin değerlerini değiştirir ve veritabanı $first_Name = "John"; $last_Name = "Smith"; $e-posta = " [e-posta korumalı]$my_Insert_Statement->execute(); // Değişkenler değiştiğine göre şimdi tekrar çalıştırın 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 mil sıralarında vikoristovuemo yöntemi bindParam() veritabanı nesnesi. Є yani kendi kendine yöntem bindValue(), ön tarafta vіdrіznyaєtsya.

  • bindParam() - veri toplamak için hangi yöntemin kullanıldığı, eğer yöntem uygulamak() ulaşmış. Komut dosyası yönteme ilk ulaştığında uygulamak() vin bachit, scho $first_name“Thom” isteyin, o simgenin değerini gösterecektir. Komut dosyası aniden yönteme ulaşırsa uygulamak(), neye hayret etmek için kazan $first_nameşimdi "John" isteyin, aynı değeri gösterin ve yeni değerlerle tekrar sormaya başlayın. Bir kez sormak ve betiğin farklı yerlerinde farklı veriler göndermek için ne yaptığımızı anlamak önemlidir.
  • bindValue() - Bu yöntem verileri hesaplar, satırın sonuna ulaşmak kolaydır. Oskіlki anlamı $first_name Bulo, şu anda yönteme ulaşırsak “Thom” olarak belirlendi. bindValue(), vikliku yöntemi ile vikoristano olacak uygulamak() için $my_Insert_Statement.

Muzaffer bir şekilde değiştirdiğimiz saygıyı iade edin $first_name ve aniden yeni bir değer ayarlayın. Bu betiği çalıştırdıktan sonra veritabanınızı kontrol ederseniz, değişikliğin değerinin aksine verilen isimlerden hakaretler olacaktır. $first_nameörneğin komut dosyası için bir "John" olacaktır. PHP'nin komut dosyası alanını çalıştırmadan önce değerlendirdiğini unutmayın.

Değiştirerek komut dosyanızı nasıl değiştirirsiniz? bindParamüzerinde bindValue, MySQL veritabanına "Thom Vial" dvіchі ekleyeceksiniz ve John Smith yok sayılacak.

Krok 3

MySQL veritabanında başarılı bir şekilde başlattığımız istendiği anda size hatırlatmak isteriz:

Afları Genişletme Vizyonu

MySQLi

Başka bir durumda, gündeme getirilen hatırlatmanın değiştirilmesi, af hakkında bir hatırlatma olarak gösterilecektir. Örneğin, kodumuzda bir sözdizimsel affa izin verelim ve şunu alalım:

Bachimo gibi, kodun ilk kısmı güvenli, bağlantı başarıyla kuruldu, ancak SQL bir saatliğine yüklendi, başarısız oldu.

"Hata: INSERT INTO Öğrenciler (ad, soyad, e-posta) DEĞERLER ("Thom", "Flakon", " [e-posta korumalı]") SQL sözdiziminizi kontrol edebilirsiniz; near "(ad, soyad, e-posta) VALUES ("Thom", "Vial", " kullanmak için doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuza bakın. [e-posta korumalı]")" 1. satırda"

Senaryomuzun sonunda başarısızlığa neden olacakmış gibi, sözdizimsel olarak affedilmesine izin verilir. Pardon bula burada:

$sql = "INSERT INTO Öğrenciler (ad, soyad, e-posta) DEĞERLER ("Thom", "Şişe", " [e-posta korumalı]")";

Yuvarlak kemerler yerine mi vikoristovuєmo figürlü kemerler nasıl bachite yaparsınız. Senaryomuzda sözdizimsel bir af getirmenin yolu bu değil.

PDO

7. satırda, PDO bağlantısı 'tüm istisnaları görüntüle' (tüm istisnaları görüntüle) olarak ayarlanmış af işleme moduna sahiptir. Senaryoyu toparlar ve kötü şans dilerseniz, af hakkında hiçbir hatırlatma almazsınız. Daha fazla haklılık ile, belirli sorunlar olacaktır. Temel olarak, betiği genişletirseniz kazanmak daha kolaydır, böylece herhangi birinin verilerinize yetkisiz erişim sağlayıp sağlayamayacağını öğrenmek istiyorsanız, o tabloda veritabanlarının adlarını gösterebilirsiniz. Başın tepesinde, yuvarlak kemerler yerine kıvırcık kemerler galip gelirse, af aşağıdaki gibi görünür:

Geçersiz hata: "SQLSTATE: Sözdizimi hatası veya erişim ihlali: 1064" mesajlı "PDOException" özel durumu SQL sözdiziminizde hata olamaz; "(ad, soyadı, e-posta) VALUES ("Thom", "Vial", " yakınında kullanılacak doğru sözdizimi için mySQL sunucu sürümünüze karşılık gelen kılavuza bakın. [e-posta korumalı]")" 1. satırda"

Karşılaşabileceğiniz diğer sorunlar:

  • Yanlış belirtilen alanlar (geçersiz alanlar ve yazılı adları affeder).
  • Alan türünün değer türünün cehaleti. Örneğin bir sayıya değer atamak istersek 47 alan İsim, üst üste olacak aktarılan için bir af alıyoruz. Ale, örneğin pençelerdeki sayıyı girerseniz, “47” , sayımızın her alanda arka arkaya yazılacağı gerçeğinin affı olmayacaktır.
  • Tabloya veri girmeye çalışın, bu mümkün değil, ancak tablonun yazılı adında affedin.

Tüm aflar af için düzeltilebilir veya af dergisi revize edilerek (İngilizce) aflar revize edilebilir.

Verilerin başarıyla tamamlanmasından sonra bunları veritabanımıza borçluyuz. Tablonun popo ekseni, yaku'da verilerimizi ekledik, sanki hayret ediyormuş gibi phpMyAdmin.

Visnovok

Tsomu'da bir galip gibi vyvchili suç ortağınız MySQL tablosuna kayıt eklemek için PHP kodu zaferlerden MySQLiі PDO. Böylece o kirazın geniş kapsamlı aflarına baktılar. Kendi sitenizi programlamayı veya oluşturmayı öğrenirseniz, MySQL veritabanına eklemek için PHP kodunu nasıl hackleyeceğinizi bilmek iyi bir fikir olacaktır.

Bu seviyede, MySql veritabanına veri girebiliyoruz, veriler düzgün bir biçimde girilmiş. Web sayfası kodundan MySql veri tabanına nasıl erişeceğinizi ve ayrıca veriyi nasıl işleyip veri tabanına gireceğinizi biliyorsunuz.


Son dersimizde Denver'ı bilgisayarınıza nasıl kuracağınızı, kendi veritabanınızı nasıl oluşturacağınızı, bunun için kopyalamayı, veritabanında nasıl tablo oluşturacağınızı anlattım ve tek kayıtta doldurduk.

Şu anda, coristuvacha'nın bilgilerini girmek için bir html belgesi ve ayrıca işlenecek veriler olan bu bilgilerin bir php dosya toplayıcısı, MySql veri tabanına bağlanacak ve oraya yeni kayıtlar ekleyeceğiz. .

Slіv'den slіv'e geçerek, doğru yapalım.

Koristuvach'ın verilerini web tarafından MySql veritabanına ekliyoruz

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

En başından itibaren php, MySql ile çalışmaya hazırlanmamız ve yerel bilgisayarda yazılı kodu test etmeden önce hazırlanmamız gerekiyor. Kimin için:

1. Bilgisayarda Denwer'ı başlatın.

2. Denver tarafından oluşturulan sanal diski görüntüleyin (örneğin, “Z” diskini kullanabilirim). Şunu girin: 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, iyi oluşturulmuş bir klasöre bir yol seçmenin bir yolu olarak “Yeni” düğmesine tıklayın, alanda siteye bir ad verebilirsiniz, ardından Kaydet - Bitti'yi tıklayın. Ardından klasörünüz Adobe Dreamweaver'ın sağ panelinde görünecektir.

1. Şimdi harika bir html dosyası oluşturalım (buna info_form.html diyelim ve kendi db1 klasörünü oluşturmamız için kaydedelim) ve bilgi girişi için form kodunu oraya yazalım. new_db veritabanındaki users tablomuz otomatik olarak yüklenebilecek bir dizi alana sahiptir (id alanı otomatik olarak yüklenecektir). Vihodyachi zgogo, saldırgan görünümün kodunu oluşturabilirsiniz:

Başlıksız Belge










Burada, reçete dosyamızın eylem parametresi form.php. Vin, verdiğimiz örnek bir dosya olacaktır.

Formumuza stil vermek için bir style.css dosyası oluşturalım. Vіne vzhe podklyucheniya y kodі, yani scho sho sadece yogo oluşturmak için kaldı, onu html dosyasıyla aynı klasöre yerleştirin ve yeni kodu yazın:

Gövde(genişlik:400 piksel; kenar boşluğu:0 otomatik; arka plan:#F8F4B6;) etiket(görüntüleme: 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;)

Şimdi form şuna benziyor:

Ancak, verileri girip formu göndermeyi denerseniz, af alırsınız, çünkü komut dosyaları dizininde bulunan form.php dosyası mevcut değildir.

Bir dosya-obrobnik oluşturun - bu bizim görevimiz.

2. Klasörün ortasına gidelim db1 adında bir klasör oluşturalım "Kodlar". Tüm scriptlerimizi MySql veritabanı ile birlikte kaydediyoruz.

Klasörü oluşturduktan sonra yeni bir php dosyası oluşturun ve adları altında klasör komut dosyalarına kaydedin. form.php.

Ancak bundan önce bir dosya toplayıcı bilgi ile meşgul olmak gerekiyor, veri tabanımıza bağlanmak gerekiyor. Bu okremy dosyası ve neden ekseni oluşturmak için yayılacağım:

Her şeyden öte, projeniz için MySql veritabanına sadece tek bir dosyadan bağlanmanız gerekecek. Kural olarak, proje için farklı dosyalar veri tabanı ile değiştirilir.
Böyle bir dış görünüm dosyasında tabana bağlanmak için aynı kodu yazmak daha da pratik değildir. Ve bu tür dosyalara ek olarak, örneğin, 50 ve bir güzel gün olacak, koristuvach'ın şifresini değiştireceksiniz ve 50 dosyanın hepsini bulup cilt çalışmasında düzelteceksiniz.
Bir dış görünüm dosyasına bağlanacak bir okrem dosyasına bağlantı için kesmek daha iyidir, MySql veri tabanına da bağlı olabilir. Şu anda sadece bir dosyada düzeltme yapmak gerekiyor.

Otzhe yeni bir php dosyası oluşturalım buna yoga diyelim connect.php komut dosyaları için bir klasöre yerleştirilir. Yenisinde, MySql veri tabanımıza girmek için kodun yanı sıra farklı viniknennya için afları hatırlatacak bir kod yazacağız. Parametre olarak, muhatap adınızı, şifrenizi ve veritabanı adınızı kaydetmeniz gerekeceğine saygı gösterin. Yak host, buti mіstseviy ana bilgisayarından suçludur.

Haraç tabanına bağlı af! " .MySQL Hatası() . "

"); mysql_select_db("new_db")// prangadaki parametre ("Im'basi, neden istiyorsun") veya öl("

Bazi danih seçimi için özür dilerim! ". MySQL Hatası() . "

"); ?>

Şimdi form.php dosyasına geçelim ve ek rahatsız edici kod için yeni connect.php dosyasına geçelim:

Formu göndermeye çalıştığınız anda, boş web sayfasının düzeltilmesinden sonra çalışacaksınız. Sorun değil çünkü üsse yeni döndük ve şu ana kadar hiçbir şey görünmüyor.

Ayrıca, af hakkında bilgilendirildiniz, tüm parametrelerin doğruluğunu tersine çevirin (host adı, şifre, ana bilgisayar adı: localhos, veri tabanının adı) ve ayrıca Denver inklüzyonlarınızın olduğundan emin olun.

3. MySql veri tabanı ile çok uzağa gittik ve şimdi ihtiyacımız var örnek dosyamızdaki veri formuna girilen verileri kabul edin. Html belgeleri için aynı olan “name” öznitelikleri konusunda bize yardımcı olabiliriz.

Verilerin işlenmesi için, web formundaki tüm bilgileri bize sağlayacak özel bir php değişikliğini hızlandıracağız. Bu değişikliğe "$_REQUEST" adı verilir.

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

$ilk_adı = $_REQUEST["ilk_adı"]; $last_name = $_REQUEST["last_name"]; $eposta = $_REQUEST["eposta"]; $facebook = $_REQUEST["facebook"];

4. Dosyadan verileri aldık ve değişikliklere girdik. şimdi gerekli MySql veritabanı tablomuza veri yükleyin. Bunun 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ı)", "($son_ad)", "($e-posta)", "($facebook)");"; mysql_query($insert_sql);

Burada, "users" tablosunun alanı için ek değişiklikler eklememiz gerektiğini söyleyerek size geri döneceğiz. $insert_sql değişikliğinden gelen talebi getiriyoruz. Ve sonra mysql_query özel fonksiyonunun yardımı için bunu isteyebiliriz.

Bu formu hemen doldurursanız ve ardından veri tabanınızdaki “kullanıcılar” tablosuna bakarsanız, gözetimden sonra orada görünecek yeni bir giriş başlatırsınız.

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

İlk etapta, bu durumdan bahsetmek gerekir, eğer bir kişi formu doldurursa, bilgi girme koçanına uygunsuz bir boşluk koyabilir. kırpmanız gerekiyor.

Farklı bir şekilde, Facebook için bir alanımız var. Bilgileri istenilen şekilde girmek istediğimiz sürece bu alandaki verilerin doğru formatta (yani “http://www.facebook.com/identifier on facebook”) toplandığından emin olmamız gerekmektedir. . Ale koristuvach, ihtiyacımız olduğu kadar qi verilerini girmeyin. VIN girilebilir: "www.facebook.com/facebook id", "facebook.com/facebook id" veya sadece "/facebook id".

Bu durumlar benzersizdir. Kimin için kodumuz podkoriguёmo. Ek işlevler için boşlukları kesebiliriz kırpmak, ve facebook için girilen URL'nin doğruluğunu kontrol etme işlevi olacaktır preg_match. Bu sıralamada, form.php dosyasındaki tüm kodlar bir sonraki sıralama gibi görünecektir:

Başlıksız Belge Üsse yeni kayıt eklendi!

"; ?>

fonksiyon hakkında preg_match:
Tüm işlev, düzenli dalgalanmalara sahip bir şakadır.

Kemerler için ilk parametre normal virase, diğeri ise gerektiği gibi satırdır.

İşlev yalnızca ilk zbіg'yi döndürür: 0 - zbіgіv yoksa, 1 - zbіg є ise.

Şimdi formu doğru doldurmaya çalışın, herhangi bir alanı doldurmanın koçanındaki yanlış alanı doldurun ve http:// olmadan veya sadece facebook tanımlayıcısını kullanarak facebook adresini girin. Bir istek isteyin ve ardından veritabanına gidin ve yanlış doğru doldurmadan bağımsız olarak verilerin tam da ihtiyacımız olan görünüm olabileceğini söyleyeceksiniz.

Dersi kimin üzerine bitireceğim. Bu dersin tüm dosyalarını kendi kayıtlarınızda değiştirebilirsiniz (sadece connect.php dosyalarınız için parametreleri düzeltmeyi unutmayın).

Ve ilerleyen yıllarda MySql veri tabanından bilgi almayı, kayıt ihtiyacını seçmeyi ve ekranda göstermeyi öğreniyoruz. Yaklaşan dersi kaçırmamak için aşağıda görebileceğiniz gibi ek abonelik formları için blog güncellemesine abone olun.

Ek sosyal medya düğmeleri için yorumlarınızı bırakın ve arkadaşlarınızla paylaşın.

Başarı ve önümüzdeki saatte şafağa kadar!

Size bu yazıdan bahsetmek istiyorum, Bazi Danikh'e nasıl gönderilir, forma veri girin. Ve böylece iki alana sahip olacağımız basit bir form oluşturuyoruz:

Adınız:
E-posta adresiniz:


Bu form yeni bir muhabir kaydetmek, haber göndermek, istatistik toplamak için kullanılabilir, bu her zaman açığız... Bu forma yazarak bilgilerinizi girin: o mesajı gönderin, butona tıklayın ve verileri gönderin. php komut dosyasına:

$isim = $_POST["isim"]; $eposta = $_POST["eposta"]; $result = mysqli_query("INSERT INTO user (isim, email) DEĞERLER ("$name", "$email")"); if ($result) ( echo "Başarılı tasarruflar!"; ) else ( echo "Affedildim, nazik olun, tekrar deneyin."; )


Senaryolar ne yapıyor? Anlayalım!
Veri formunu girin, php betiğine gitmek için POST yöntemini kullanın (ki bu daha fazla yazımdır) ve global $_POST dizisinin yardımı için, veriler $name ve $email değişikliğinde oluşturulur:

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


Bundan sonra, değişiklik tabana getirilmeye hazır olduğu için isteği ekliyoruz. Ve her şeyden önce, aşağıda Scriptleriniz bitmiştir, ancak veritabanına zaten bağlı, veritabanına nasıl bağlanılır, bu konuda yazdım: . Kendinden şöyle görünmesini istedi:

$result = mysqli_query("INSERT INTO user (isim, email) DEĞERLER ("$name", "$email")");


Bu kod için göbek adı ve emailden önce user tablosunda olduğu gibi şu değişikliklerin ekleneceği belirtilmişti: $name ve $email .
Her şey yolunda gittiğinden, bir hatırlatma alıyoruz:

Veriler başarıyla kaydedildi!


Aslına bakarsanız sorunlar ve veriler girilmediği için affı hatırlatmamız gerekiyor:

Affedildi, nazik olun, testi tekrarlayın.


Ben hepinizden!

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

Bilgilerin tanıtımı için daha fazla alan ekleyebilirsiniz, örneğin koristuvach yerinin tanıtımı için bir alan eklememiz gerekiyor. Hazır bir komut dosyamız var (daha fazla yazı), şimdi sadece bir alan ekleyin Yerinizi, adı $city olarak değiştirin. І yani veri girişi şeklinde, sonra:

E-posta adresiniz:


Ekle:

Konumunuz:


PHP betiğinde, sonra:

$eposta = $_POST["eposta"];


Ekle:

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


Ve elbette, istek üzerine aynısını ekleyin, eksen şöyle:

$result = mysqli_query("INSERT INTO user (isim, e-posta, şehir) DEĞERLER ("$isim", "$email", "$şehir")");


Sonuçta görülebilecek olanın ekseni:
Giriş formu:

Adınız:
E-posta adresiniz:
Konumunuz:


Senaryo:

$isim = $_POST["isim"]; $eposta = $_POST["eposta"]; $şehir = $_POST["şehir"]; $result = mysqli_query("INSERT INTO user (isim, e-posta, şehir) DEĞERLER ("$isim", "$email", "$şehir")"); if ($result == true) ( ​​echo "Başarıyla kaydedildi!"; ) else ( echo "Affedildi, nazik olun, tekrar deneyin."; )


bachite gibi hiçbir şey katlanabilir! Gerekirse, daha fazla alan, daha fazla, daha fazlasını ekleyebilirsiniz...

Yorumlar blogdan taşındı

SERGII
09/14/2016 01:25
İyi günler!
Aynı şeyi söylemek gerekirse: Bir veritabanı kullanmadan veri tasarruflarını düzenlemenin ve programları düzeltmenin en kolay yolu nasıl? MySQL veya Access'e eklenmek istenmez.

YÖNETİCİ
09/14/2016 22:14
İyi günler!

Özellikler.Ayarlar
Uygulama Yapılandırması
XML dosyası
serileştirme
Listeden birini seçmeye çalışın.

MİKOLA
09/16/2016 02:28
Merhaba, dataGridView ve phpMyAdmin'den dataGridView satırını nasıl görebilirim.

PhpMyAdmin? Veritabanına sahip bir robot için tüm kabuğu açıklayabilir misiniz?

MİKOLA
09/18/2016 02:24
DataGridView'dan ve veri tabanından görülen satırı görmek gerekir.

YÖNETİCİ
09/19/2016 07:00
Mysql veritabanında bir satır nasıl görülür - bir makale ekleyerek.

MİKOLA
09/20/2016 09:20
Harika dyakuyu.

DIMA
09/20/2016 10:24
Merhaba, bu yöntemi DataGridView üzerinden değil de ComboBox üzerinden uygulamak mümkün müdür? Yakscho yani yak? Teşekkür ederim.

YÖNETİCİ
22.09.2016 03:21
Vitannia. popo:

GENADY
22.09.2016 18:25
System.Windows.Forms.TextBox, Text veritabanına neden aşağıdaki metni eklemeliyim:

Yazı ekseni tse (ge), tse'nin sonuna kadar düzeltilmiş endikasyon tablolarında gen hoch yazılır. genin sözü suçlu Bulo çok aşağılanacak

YÖNETİCİ
24.09.2016 04:17
Shvidshe, SQL'in tüm yanlış yazımları için şunu sorar, örneğin:

textBox1 için adı girin: Gene.

Sql sorgusu: "Tablo adı değerlerine ekleyin(textBox1, ..)"; Sonuç: System.Windows.Forms.TextBox

Ve şunu geçmeniz gerekiyor: "Tablo adı değerlerine ekleyin(textBox1.Text, ..)";
Sonuç: Gena

GENADY
24.09.2016 18:41
Bu çok dışarı ve є. Teşekkür ederim

SERGII
25.09.2016 hakkında 11:51
Tünaydın. Ve textBox aracılığıyla veritabanına ekleme nasıl yapılır?

YÖNETİCİ
26.09.2016 20:53
Prensipte hepsi aynı. Örneğin, kalan popoyu alın, yenisi için gereklidir:

//parametre oluşturma ve bunları koleksiyona ekleme cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue("@LastName", textBox2.Text);

şimdi parametreler: Ad ve Soyadı, metin kutusuna girilen değerleri kabul eder ve bunları veritabanına iletir.

LİNARU
27.09.2016 17:45
Merhaba, dataGridView ve phpMyAdmin satırını nasıl görüyorsunuz?

YÖNETİCİ
29.09.2016 02:06
PhpMyAdmin satırının nasıl görülebileceğini bilmiyorum. Ve örneğin dataGridView'da SelectionChanged alt bölümünün yardımı için çalışabilirsiniz.

PSH
09/30/2016 03:48
2Linara:
Satırları bu kadar çok düzenlemek istiyorsanız, bir HediSQL aracı kullanın, ince ayar yapın ve satırları değiştirin.

2admin
İyi günler! Malzemeler için teşekkürler - her şey harika bir şekilde ortaya kondu)
Yemekler: Bu istekle veri ekliyorum (şarabı test et):

String sql = "INSERT INTO users ('FIO', 'Tur', 'Sayı', 'Maliyet', 'Tarih', 'Pasaport', 'Doğum') DEĞERLER ("Kolyan", "Moskova", "1+1" ", 1100, "2011-11-11", "1111 1111", "11/9/1900");";

Veriler girildi tamam, ancak veritabanında (mysql) Kiril alfabesinin adı "????" görüntüleniyor.

Visual studio, System.String'in bir Unicode dizisi olduğunu söylüyor.

Yani denedikten sonra:

ALTER DATABASE `test` COLLATE "koi8r_general_ci"; ALTER TABLE `users` COLLATE="koi8r_general_ci"; ALTER DATABASE `test` COLLATE "utf8_unicode_ci"; ALTER TABLE `users` COLLATE="utf8_unicode_ci";

Ali yardım etmez.
Kim sağda olabilir? Farklı kodlama VS i DB? Ne?
Okumak/değiştirmek için bir şeyler gönderir misiniz?
teşekkür ederim

YÖNETİCİ
01.10.2016 09:49
Vitannia.

Veritabanında (ve tablolarda) bir utf_general_ci ifadesi vardır

Yani hіba є düzenlemesi mi? Belki utf8_general_ci?

utf8_general_ci seçerek bir Mysql veritabanı oluşturmaya başlayın, böylece Kiril alfabesi ile ilgili herhangi bir sorun olmaz, istemcinin sunucuya gelmeyeceği aşikardır.

Eşleştirme için COLLATION seçilir, ancak aynı şekilde kodlama (karakter seti) önemlidir. Bu nedenle sunucuda doğru bir şekilde yayınlandığını yeniden düşünmek gerekir, örneğin latin1'de değil, utf8'de.

.net üzerinden bağlanırken, bağlayıcı (kilitleme için) latin1'e ayarlanır, aksi takdirde bağlantı satırında utf8 kodlamasını açıkça belirtmek gerekir:

MySqlConnection mycon; mycon = new MySqlConnection("sunucu=127.0.0.1;uid=vasya;pwd=123;database=test;Charset=utf8;"); // MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8";

PSH
01.10.2016 11:34
Kendini tarif ederek hamle yapıyorsun utf8_general_ci!
Çok yardımcı oldu; karakter kümesi=utf8;
teşekkür ederim majestic!

SERGII
02.10.2016 hakkında 11:02
Çalışan bir popo için Dyakuyu gerekli. Yiyecek
Metin alanını veri tabanının IP adresini girmek istediğim şekilde oluşturdum fakat veri eksenini buraya nasıl göndereceğimi bilmiyorum

String conStr = " [e-posta korumalı];kullanıcı=test;" +
"veritabanı=test;şifre=test;";
Lütfen bu yapıda Windows formundaki metin alanlarından nasıl veri ekleneceğini önerin.

YÖNETİCİ
03.10.2016 yaklaşık 11:50
"[e-posta korumalı];kullanıcı=...
Bunun yerine, bu makaledeki gibi bir dizi muzaffer gücü değiştirmek daha iyidir, ancak String.Format () yöntemi

OLGA2203
05/15/2017 20:14

String Connect = “Sunucu=127.0.0.1;Port=3306;Veritabanı=taban;Veri Kaynağı=localhost;kullanıcı=kök;”; MySqlConnection con = Yeni MySqlConnection(Bağlan); con.Open(); //Veri tabanı verilerinin yüklenmesi. MySqlCommand cmd = Yeni MySqlCommand(); cmd.CommandText = @"INSERT INTO (ID,Kategori,Ad,Ticari Marka,Fiyat,Fotoğraf,Boyut,Renk,Malzeme,Sayı) DEĞERLER (@pr, @Category, @Name, @TradeMark, @Fiyat, @Fotoğraf, @ Boyut, @Renk, @Malzeme, @Sayı)”; cmd.Parameters.AddWithValue(“@pr”, sayaç); cmd.Parameters.AddWithValue(“@Category”, comboBox1.SelectedItem.ToString()); cmd.Parameters.AddWithValue(“@Ad”, textBox1.Text); cmd.Parameters.AddWithValue(“@TradeMark”, textBox2.Text); cmd.Parameters.AddWithValue(“@Price”, Convert.ToInt32(textBox4.Text)); cmd.Parameters.AddWithValue("@Photo", 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=con; cmd.ExecuteNonQuery(); MessageBox.Show("Ekleme başarılı", "Ekleme başarılı", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

"Sütun 'ID' boş olamaz" affını görüyorum, Kimlik sütunundaki eklemeyi temizliyorum - saldırganın kendisi hakkında yazıyorum, vb.
DEĞERLER'in kollarına sabit bir değer ekliyorum, tabana bir satır ekleniyor.
Söyle bana, kibar ol, sorun ne? Form aracılığıyla girilen veri tabanının kendisinde bu değerin yazılması gerekir.

yönlendirici