Menü
Ingyenes
bejegyzés
itthon  /  Firmware/ Rekord hozzáadása az sql php táblához. Adatok hozzáadása a PHP -hez

Rekord hozzáadása az sql php táblához. Adatok hozzáadása a PHP -hez

A webhely vagy a webalkalmazás minden modulja, ahol be kell írnia és írnia kell néhány adatot (például név, életkor, cím stb.), Egy egyszerű függvényt használ a mysql nyelvben INSERT INTO `name_base` (név, érték1, érték2 ) ÉRTÉKEK („Vasya”, „1”, „2”);

Minden változó az első zárójelben megadott értékeknek megfelelően kerül be az adatbázisba. Fontos figyelembe venni a kezelő szkript, adatbázis és konfigurációs fájl kódolását. Célszerű a leggyakoribb UTF-8 kódolást használni.

Nem szabad elfelejteni, hogy az adatbázisba kétféleképpen lehet írni.

Az első út ha kezdetben nem állítjuk be az adatbázis -táblák cellaneveit. Ezután fel kell sorolnunk az egyes cellák összes változóját, nevezetesen azt, hogy hány cella van az adatbázis -táblában, mivel sok változót zárójelben kell feltüntetni az VALUE érték után.

Például:
Az adatbázis táblában négy cella található. Ez azt jelenti, hogy mind a négy változót zárójelben kell feltüntetni a VALUE (..) elem után. És még valami: ha a változó nem létezik, tegyük fel, hogy ez egy opcionális paraméter. Ezután csak üres értéket írunk idézőjelekbe '',

"INSERT INTO` name_base` VALUES (NULL,` ". $ Name." `,` `,` 2`) "; // a harmadik üres értéket idézőjelbe kell írni

Ennek a kérésnek azonban vannak kisebb hátrányai. Ha egy vagy két cellát ad hozzá az adatbázis táblához, akkor ez a lekérdezés hibát ad vissza. Mivel ebben a módszerben a kérelem összes cellájának felsorolása kötelező.

Második út ha a INSERT INTO `name_base` (...) lekérdezés után az adatbázis neve után az összes cellát felsorolja. Egy példát már kicsit feljebb tárgyaltak. Ha elfelejtetted, írjuk újra:

"INSERT INTO` name_base` (` name`, `value`,` value2`) VALUES (NULL, `". $ Name. "`, ``, `2`)";

Itt felsoroltuk az összes cellát (név, érték1, érték2). És ha további két cellát ad hozzá az adatbázis táblához, akkor a lekérdezés szintaxisát nem kell megváltoztatni. De ha csak nem kell egyszerre hozzáadnunk egy kérelemhez azokat a további változókat, amelyekre szükségünk van az újonnan létrehozott cellákhoz.

Ez a hiba nagyon gyakran összeomlik, egy kis változtatás után a webhelyen. Tegyük fel, hogy az adminisztrátor egy további cellát adott hozzá a bázishoz, mondjuk az állapotot. És a szkriptkezelőnek nem volt ideje a modult cserélni, vagy egyszerűen elfelejtette. Néhány webhely azonban nagyon összetett felépítésű, és sok időt és erőfeszítést igényelhet a hiba megtalálása. Ezért célszerű az adatbázisba való írás második módszerét használni. Bár az ilyen hibákat gyakrabban követik el a kezdő webprogramozók.

Php írás mysql adatbázisba. Gyakorlati példák

Tehát most eljutottunk az adatbázis -lekérdezések kezelésének legvégére. Mindent megteszünk gyakorlati példák... Hozzunk létre egy egyszerű szkriptet, amellyel megjegyzéseket írhatunk a webhely látogatói számára.

Először hozzuk létre az msg táblát egy négy cellás adatbázisban. Az első cellába írja be a megjegyzés azonosítóját. A cellában lévő karakterek száma, legfeljebb tíz karakter, az automatikus növelés paraméterrel. azt automatikus paraméter minden alkalommal megváltozik, amikor megjegyzést ad a +1 -hez.

A következő cella a felhasználónév neve. A karakterek száma - legfeljebb kétszáz -háromszáz karakter az Ön választása szerint, a char paraméter. Ezután cella megjegyzés - beírjuk a megjegyzés szövegét ebbe a cellába. Ha nagy megjegyzésszövegeket szeretne írni, beállíthatja a szövegparamétert - akkor csak hatalmas szövegeket, több mint ötszázezer karaktert írhat be, vagy beállíthatja a tinytext paramétert, akkor egy kicsit kevesebb karakter fér el, de működni fog kicsit gyorsabban.

De esetünkben szem előtt tartjuk, hogy a látogatók nem fognak hatalmas szövegeket írni. Ezért korlátozzuk magunkat, és kétezer karaktert rögzítünk a varchar paraméterrel a karakterláncok írásához.

Az utolsó cellába írjuk a megjegyzés szövegének beírásának dátumát. Az aktuális dátum és idő függvény time () használatával másodpercben numerikus formátumban írunk; Az egyszerűség kedvéért a $ time = time () változóra állítjuk a függvényt; És hozzunk létre egy cellát az adatbázisban. Nevezzük időnek az int paraméterrel (numerikus értékek esetén). Írjuk le a karakterek számát - lehetőleg tizenegyet (kis tartalékkal a jövőre nézve :-).

Az adatbázis kiírása a következő:

Táblázatszerkezet `msg` - TÁBLÁZAT LÉTREHOZÁSA, HA NEM LÉT` msg` (` id` int (10) NOT NULL AUTO_INCREMENT, `name` char (250) NOT NULL,` coment` varchar (2000) NOT NULL, `time` int (11) NOT NULL, PRIMARY KEY ("id")) MOTOR = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;

Ennyi, létrehoztunk egy táblázatot a megjegyzésekhez. Most írunk egy űrlapot, hogy megjegyzést írjunk, és magát a szkriptkezelőt. A megjegyzés űrlap HTML kódja a következő.

Ebben a cikkben talán a legfontosabbakat elemezzük SQL lekérdezések... azt lekérdezések rekordok hozzáadására és eltávolítására az adatbázis táblából... Mivel nagyon gyakran szükség van rá új rekordok hozzáadása a táblázathoz, és hogy ezt automatikus módban tegye, akkor ez az anyag szükséges a tanulmányozáshoz.

Kezdeni SQL hozzáfűző lekérdezés új bejegyzés az asztalhoz:

INSERT INTO users (login, pass) értékek ("TestUser", "123456")

Bejegyzés hozzáadásakor az első parancs " INSERT INTO", akkor annak a táblának a neve, amelybe a rekordot beillesztjük. Ezután következnek azoknak a mezőknek a nevei, amelyeket zárójelben szeretnénk kitölteni. Aztán zárójelben a szó után" értékeket"elkezdjük felsorolni a kiválasztott mezők értékeit. A lekérdezés végrehajtása után új rekord jelenik meg a táblázatunkban.

Néha kell egy rekord frissítése egy táblázatban, ehhez van a következő SQL lekérdezés:

A felhasználók frissítése SET login = "TestUser2", pass = "1234560" WHERE login = "TestUser"

Ez a lekérdezés összetettebb, mivel felépítése " AHOL", de erről bővebben alább. Először a parancs jön" FRISSÍTÉS"után a tábla neve, majd" KÉSZLET"leírjuk az összes mező értékeit, amelyeket meg akarunk változtatni. Egyszerű lenne, de felmerül a kérdés:" Melyik rekordot érdemes frissíteni?". Ehhez van" AHOL". Ebben az esetben frissítjük a rekordot, a mezőt" Belépés"ami számít" TestUser". Kérjük, vegye figyelembe, hogy ha több ilyen rekord van, akkor teljesen minden frissítésre kerül! Ezt nagyon fontos megérteni, különben fennáll az asztal elvesztésének kockázata.

Beszéljünk egy kicsit többet " AHOL". Az egyszerű egyenlőségi teszteken kívül vannak egyenlőtlenségek, valamint logikai műveletek: ÉSés VAGY.

UPDATE felhasználók SET login = "TestUser2", pass = "1234560" WHERE id< 15 AND login="TestUser"

Az SQL lekérdezés frissíti ezeket a rekordokat id amelyek kevesebbek 15 ÉS terület " Belépés"jelentése van" TestUser". Remélem, rájött a tervre." AHOL"mert nagyon fontos. Pontosan." AHOL"használt, amikor rekordok lekérése a táblázatokból, és ez a leggyakrabban használt feladat az adatbázisokkal való munka során.

És végül egy egyszerű SQL lekérdezés rekordok törléséhez egy táblából:

DELETE FROM users WHERE login = "TestUser2"

A parancs után " DELETE FROM"a tábla neve, amelyben törölni szeretné a rekordokat. Ezután leírjuk a" WHERE "konstrukciót. Ha a rekord megfelel a leírt feltételeknek, akkor törlődik. AHOL", tetszőleges számú törölhető.

Ebben az útmutatóban megtudhatja, hogyan kezdheti el adatbázisának kezelését a számítógépről PHP forgatókönyv. Tanulni fogsz rekord hozzáadása a MySQL táblához, segítségével PHP kód... Mielőtt elkezdené, nézze meg a többi oktatóanyagunkat, amelyek a PHP -vel és az adatbázisokkal való munka alapvető lépéseit ismertetik - a PHP -ből MySQL -adatbázishoz való kapcsolódást.

Mielőtt elkezdené, ellenőrizze a következőket:

  • Hozzáférés a tárhely vezérlőpultjához

1. lépés - a táblázat létrehozása

Először is létre kell hoznunk egy táblázatot az adatokhoz. Ez nagyon egyszerű eljárás amiben megteheti phpMyAdmin a tárhely vezérlőpultjáról. A MySQL adatbázis létrehozásának folyamatát már ismertettük az előző oktatóanyagban, ezért ezt a pontot itt kihagyjuk.

Miután belépett a phpMyAdmin oldalra, hasonló képet fog látni:

Készítsünk táblázatot a nevével Diákok adatbázisunk számára u266072517_name... Új táblázatot a kattintással hozhat létre Táblázat létrehozása... Ezek után látni fogod új oldal ahol megadhatja a táblázathoz szükséges összes adatot:

Ez a legegyszerűbb módja a táblázat létrehozásának. Ha további információra van szüksége a tábla / adatbázis szerkezetéről és az egyes mezőkre vonatkozó beállításokról, tekintse meg a hivatalos phpMyAdmin dokumentációt.

Íme néhány egyszerű magyarázat az általunk használt mezőkre:

  • Név A te területed neve. A táblázat legtetején jelenik meg.
  • típus- Itt állíthatja be a mező típusát. Például választunk varchar mert itt egy karakterláncot kell megadnunk egy névvel (amely betűket tartalmaz, nem számokat).
  • Hossz / értékek- ezzel a mezővel lehet megadni a bejegyzés maximális hosszát.
  • Index- az „Elsődleges” indexet használjuk az „ID” mezőhöz. Táblázat létrehozásakor ajánlott egy azonosító mező. A táblázatok rekordjainak indexelésére szolgál a táblák közötti kapcsolatok beállításakor. Itt is megjegyezhető "A_I" ami azt jelenti Automatikus növelés... Ez a beállítás automatikusan növeli az indexet (1,2,3,4…).

Kattintson Megmentés létrejön a táblázat.

2. lépés - PHP kód létrehozása és bejegyzés hozzáadása a MySQL táblához

1. lehetőség - MySQLi módszer

Először is létre kell hoznia egy kapcsolatot az adatbázissal, a korábbi oktatóanyagunk szerint. Ezt követően folytathatjuk az SQL lekérdezést, hogy rekordot adjunk hozzá a MySQL táblához - INSERT... Íme egy teljes példakód a bekötési és beillesztési módszerrel:

". mysqli_error ($ conn);) mysqli_close ($ conn);?>

Így a kód első része (sorok 3 – 18 ) hivatkozik az adatbázishoz való kapcsolódás létrehozásának részére. Ezt a részt nem fogjuk újra végigvinni. Ha tudni szeretné, mit jelentenek az egyes sorok, olvassa el az előző oktatóanyagunkat az adatbázishoz való csatlakozásról.

Kezdjük a sorral 19 :

$ sql = "INSERT INTO Students (név, vezetéknév, e -mail) VALUES (" Thom "," Fiola "," [e -mail védett]")";

Ez a legfontosabb kódsor, mindent megtesz, amit ebben az oktatóanyagban leírtunk - rekord hozzáadása az adatbázis MySQL táblájához. INSERT INTO Olyan kifejezés, amely rekordot ad hozzá a megadott MySQL adatbázis táblához. Példánkban adatokat adunk hozzá a táblázathoz Diákok.

Továbblépve, zárójelben határozzuk meg a táblázatmezőket, értékeket, amelyekhez hozzáadjuk: (név, vezetéknév, email)... Az adatok hozzáadása egy meghatározott sorrendben történik. Ha írunk (e -mail, vezetéknév, név), az értékek más sorrendben kerülnek hozzáadásra.

A jelentés következő része ÉRTÉKEK... Itt az értékeket a korábban megadott mezőkre állítjuk. Így minden mező megkapja a saját értékét. Például a mi esetünkben ez valami ilyesmi lesz: név = Thom, vezetéknév = Fiola, e -mail = [e -mail védett] .

Fontos megjegyezni, hogy itt alkotunk SQL lekérdezés PHP kód használatával. Az SQL lekérdezéseket idézőjelek közé kell tenni. Példánkban az idézőjelek és a $ sql = követése között minden SQL lekérdezés.

A kód következő része ( 20 – 22 sora) futtatja kérésünket, és ellenőrzi, hogy a kérés sikeres volt -e:

Ha (mysqli_query ($ conn, $ sql)) (echo "Az új rekord sikeresen létrehozva";)

Sikeres üzenet jelenik meg, ha a kérés helyesen futott.

És az utolsó rész ( 22 – 24 sorok) egy másik üzenetet mutatnak arra az esetre, ha kérésünk sikertelen:

Más (echo "Hiba:". $ Sql. "
". mysqli_error ($ conn);)

Ez a kód hibaüzenetet jelenít meg, ha valami baj történt.

2. lehetőség - PHP adatobjektum -módszer (P HP D ata O bject)

Az előző példához hasonlóan először létre kell hoznunk egy adatbázis -kapcsolatot, amely akkor történik, amikor új OEM -t hoznak létre - az előző bemutató elmagyarázza, hogyan történik ez. Mivel a MySQL adatbázis -kapcsolat PDO -objektum, különféle lekérdezések előkészítéséhez és futtatásához különféle PDO -módszereket (bizonyos funkciók, amelyek egy adott objektum részét képezik) kell használnunk. Az objektum metódusokat így hívják:

$ the_Object-> the_Method ();

A PDO lehetővé teszi az SQL kód „előkészítését” a végrehajtás előtt. SQL lekérdezés indítás előtt kiszámítják és korrigálják. Tehát egy egyszerű támadás SQL injekció az űrlapmezőben található SQL kód kitöltésével tehető meg. Például:

// A felhasználó ezt írja be a bejelentkezési űrlap felhasználónév mezőjébe "; DROP DATABASE user_table; // A végső lekérdezés a következő lesz:" SELECT * FROM user_table WHERE username = thom "; DROP DATABASE user_table;

Mivel az SQL -kód szintaktikailag helyes, a pontosvessző ebből áll DROP DATABASE user_tableúj SQL lekérdezést, és a felhasználói táblázat törlődik. Az előkészített kifejezések nem engednek karaktereket és ; hogy teljesítse az eredeti kérést, és a nyilatkozatot DROP ADATBÁZIS soha nem fogják kivégezni.

Mindig használjon előkészített utasításokat, amikor adatokat küld vagy fogad egy adatbázisból származó OEM -sel.

Az előkészített kifejezések használatához létre kell hoznia egy új változót, amely meghívja a metódust készít () az adatbázis -objektumon.

A megfelelő formában a kód így néz ki:

$ szervernév = "mysql.hostinger.com"; $ database = "u266072517_name"; $ username = "u266072517_user"; $ password = "buystuffpwd"; $ sql = "mysql: host = $ szervernév; dbnév = $ adatbázis;"; $ dsn_Options =; // Hozzon létre új kapcsolatot a MySQL adatbázissal a PDO használatával, a $ my_Db_Connection egy objektum próbálkozás ($ my_Db_Connection = new PDO ($ sql, $ username, $ password, $ dsn_Options); echo "Sikeresen csatlakoztatva";) catch (PDOException $ hiba) (echo "Csatlakozási hiba:". $ error-> getMessage ();) // Állítsa be annak a személynek a változóit, akit hozzáadni szeretnénk az adatbázishoz $ first_Name = "Thom"; $ last_Name = "Fiola"; $ email = " [e -mail védett]"; // Itt létrehozunk egy változót, amely meghívja az adatbázis-objektum előkészítési () metódusát // A futtatni kívánt SQL-lekérdezést paraméterként adjuk meg, és a helyőrzőket a következőképpen írjuk be: placeholder_name $ my_Insert_Statement = $ my_Db_Connection-> előkészítés ("INSERT INTO Students (név, vezetéknév, e -mail) ÉRTÉKEK (: keresztnév ,: vezetéknév ,: email)"); // Most a bindParam () metódussal megmondjuk a szkriptnek, hogy melyik változóra valójában melyik változó hivatkozik paraméter a fenti utasítás helyőrzője-a második paraméter egy változó, amelynek hivatkoznia kell $ my_Insert_Statement-> bindParam (: first_name, $ first_Name); $ my_Insert_Statement-> bindParam (: last_name, $ last_Name); $ my_Insert_Statement-> bindParam (: email, $ email); // Végezze el a lekérdezést az imént meghatározott adatok felhasználásával // A execute () metódus IGAZ értéket ad vissza, ha sikeres, és HAMIS, ha nem, lehetővé teszi, hogy saját üzeneteit ide írja, ha ( $ my_Insert_Statement-> execute ()) (echo "Az új rekord sikeresen létrehozva";) el se (echo "Nem lehet rekordot létrehozni"; ) // Ezen a ponton megváltoztathatja a változók adatait, és újra végrehajthatja, hogy további adatokat vegyen fel az adatbázisba $ first_Name = "John"; $ last_Name = "Smith"; $ email = " [e -mail védett]"; $ my_Insert_Statement-> execute (); // Futtassuk újra most, hogy a változók megváltoztak, ha ($ my_Insert_Statement-> execute ()) (echo" Az új rekord sikeresen létrehozva ";) else (echo" Nem lehet rekordot létrehozni "; )

A 28., 29. és 30. sorban a módszert alkalmazzuk bindParam () adatbázis objektum. Van egy módszer is bindValue () eltér az előzőtől.

  • bindParam () - ez a módszer számolja az adatokat, amikor a módszer végrehajtani () elért. A szkript először éri el a módszert végrehajtani () ezt látja $ first_Name"Thom" -ra utal, megköti ezt az értéket és végrehajtja a kérést. Amikor a szkript másodszor is eljut a módszerhez végrehajtani ()úgy néz ki $ first_Name most "John" -ra utal, leköti ezt az értéket, és újra lefuttatja a lekérdezést az új értékkel. Fontos megérteni, hogy egyszer létrehozunk egy kérést, majd különböző adatokat helyettesítünk a szkript különböző helyein.
  • bindValue () - ez a módszer kiértékeli az adatokat, amint a sor eléri azokat. Mivel az érték $ first_Name"Thom" -ra volt állítva, amikor elértük a módszert bindValue (), a módszer meghívásakor fogják használni végrehajtani () számára $ my_Insert_S Statement.

Felhívjuk figyelmét, hogy a változót újra felhasználjuk $ first_Nameés másodszor adjon új értéket. Ha a szkript futtatása után ellenőrzi az adatbázisát, akkor mindkét megadott név ott lesz, ellentétben a változó értékével $ first_Name ennek a forgatókönyvnek a végén „John” lesz. Ne feledje, hogy a PHP kiértékeli a szkript tartalmát, mielőtt futtatná.

Ha lecseréli a szkriptet bindParam tovább bindValue, hozzáteszed MySQL adatbázis„Thom Vial” kétszer az adatbázisba, és John Smith figyelmen kívül marad.

3. lépés - A végrehajtás sikerének ellenőrzése és az általános kérdések megoldása

Ha a MySQL adatbázisban futtatott lekérdezés sikeres, akkor egy ilyen üzenetet fogunk látni:

Gyakori hibák megoldása

MySQLi

Minden más esetben hibaüzenet jelenik meg a fenti üzenet helyett. Például tegyünk egy szintaktikai hibát a kódunkban, és ezt kapjuk:

Amint látjuk, a kód első része rendben van, a kapcsolat sikeresen létrejött, de SQL lekérdezésünk hiba történt végrehajtáskor.

"Hiba: INSERT INTO Students (név, vezetéknév, e -mail) VALUES (" Thom "," Fiola "," [e -mail védett]") Hiba van az SQL szintaxisában; ellenőrizze a MySQL szerver verziójának megfelelő kézikönyvet, hogy megtalálja a megfelelő szintaxist a" (név, vezetéknév, e -mail) közelében VALUES ("Thom", "Fiola", ") [e -mail védett]")" az 1. sorban "

Szintaktikai hiba történt, ami miatt a szkriptünk meghiúsul. A hiba itt volt:

$ sql = "INSERT INTO Students (név, vezetéknév, e -mail) VALUES (" Thom "," Fiola "," [e -mail védett]")";

Mint látható, zárójel helyett göndör zárójelet használunk. Ez helytelen, és szintaktikai hibát eredményez a szkriptünkben.

OEM

A PDO -kapcsolat 7. sorában a hibakezelési mód „minden kivétel megjelenítése” értékre van állítva. Ha eltávolítja ezt a parancsfájlból, és a kérés sikertelen, nem kap hibaüzenetet. Ha a kivételek engedélyezve vannak, a felmerült problémák megjelennek. Általánosságban elmondható, hogy ezt a parancsfájl fejlesztésekor lehet a legjobban használni, mivel feltárhatja azokat az adatbázisokat és táblázatneveket, amelyeket el szeretne rejteni valaki elől illetéktelen hozzáférés az adataihoz. A fenti esetben, amikor göndör zárójelet használtak zárójel helyett, a hiba a következőképpen néz ki:

Végzetes hiba: „PDOException” kivétel nélküli kivétel „SQLSTATE: Szintaktikai hiba vagy hozzáférési hiba: 1064 Hiba van az SQL szintaxisában; ellenőrizze a MySQL szerver verziójának megfelelő kézikönyvet, hogy megtalálja a megfelelő szintaxist a "(név, vezetéknév, e -mail) közelében VALUES (" Thom "," Fiola ",") [e -mail védett]")" az 1. sorban "

További problémák, amelyekkel találkozhat:

  • A mezők helytelenül vannak megadva (nem létező mezők vagy a nevek helyesírási hibái).
  • Az érték típusa nem egyezik a mezőtípussal. Például amikor értéket akarunk rendelni egy számhoz 47 terület Név, hibát kapunk, mert az értéket karakterláncnak feltételezzük. De ha például egy számot idézőjelben ad meg “47” , nem lesz hiba, mert számunkat karakterláncként írjuk be erre a mezőre.
  • Kísérlet történt adatok beírására egy nem létező táblázatba, vagy hiba történt a tábla nevében.

Mindezeket a hibákat a hibajavítási útmutatók követésével vagy a hibanapló ellenőrzésével lehet kijavítani.

Az adatok sikeres hozzáadása után látnunk kell azokat az adatbázisunkban. Íme egy példa egy táblázatra, amelyhez hozzáadtuk adatainkat phpMyAdmin.

Következtetés

Ebben az oktatóanyagban megtanulta a használatát PHP kód rekord hozzáadásához a MySQL táblához segítségével MySQLiés OEM... Megnéztük a gyakori hibák eseteit és azok megoldásait is. Ha ismeri a programozást, vagy már saját webhelyet épít, hasznos lesz tudni, hogy hogyan használhat PHP -kódot MySQL -adatbázis hozzáadásához.

Ebben a bejegyzésben szeretném elmondani hogyan viheti át az adatbázisba a megadott adatokat az űrlapon... És így alkotunk egyszerű alak ahol két mezőnk lesz: a felhasználónév és az övé Email:

A neved:
Az email címed:


Ez az űrlap használható új felhasználó regisztrálására, hírek küldésére, statisztikák gyűjtésére és bármi másra ... Általában a felhasználó kitölti adatait ebbe az űrlapba: név és mail, rákattint egy gombra, majd az adatok belép egy php szkriptbe:

$ name = $ _POST ["név"]; $ email = $ _POST ["email"]; $ result = mysqli_query ("INSERT INTO user (name, email) VALUES (" $ name "," $ email ")"); if ($ result) (echo "Az adatok mentése sikeres!";) else (echo "Hiba történt, kérjük, próbálja újra.";)


Mi történik ebben a forgatókönyvben? Találjuk ki most!
Az űrlapon megadott adatok, POST módszerrel nyissa meg a php szkriptet (amelyet fent írtunk), és a $ _POST globális tömb használatával az adatok a $ name és $ email változókba kerülnek:

$ name = $ _POST ["név"]; $ email = $ _POST ["email"];


Miután a változók készen állnak az adatbázisba való bevitelre, összeállítunk egy kérést. De először is, a szkripteknek már kapcsolódniuk kell az adatbázishoz, hogyan kell csatlakozni az adatbázishoz, írtam ebben a szálban :. Maga a kérés így néz ki:

$ result = mysqli_query ("INSERT INTO user (name, email) VALUES (" $ name "," $ email ")");


Ebben a kódban jeleztük, hogy a következő változók kerülnek hozzáadásra a felhasználói táblázatban található név- és e -mail cellákhoz: $ name és $ email.
Továbbá, ha minden jól ment, üzenetet kapunk a feltételtől:

Az adatok mentése sikeres!


Ha bármilyen probléma merült fel, és az adatokat nem adta meg, hibaüzenetet kapunk:

Hiba történt. Kérjük, próbálja újra.


Ez minden!

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

Ha kívánja, további mezőket adhat meg az információk beviteléhez, például hozzá kell adnunk egy mezőt a felhasználó városának megadásához. Már van egy kész szkriptünk (fent írt), most csak hozzáadjuk a mezőt A te városod, elnevezzük a változót: $ city. És így az adatbeviteli űrlapon, miután:

Az email címed:


hozzá:

A te városod:


Egy php szkriptben a következők után:

$ email = $ _POST ["email"];


hozzá:

$ city = $ _POST ["város"];


És természetesen hozzáadjuk a kéréshez is, így:

$ result = mysqli_query ("INSERT INTO user (név, e -mail, város) VALUES (" $ name "," $ email "," $ city ")");


Itt a vége:
Beviteli forma:

A neved:
Az email címed:
A te városod:


Forgatókönyv:

$ name = $ _POST ["név"]; $ email = $ _POST ["email"]; $ city = $ _POST ["város"]; $ result = mysqli_query ("INSERT INTO user (név, e -mail, város) VALUES (" $ name "," $ email "," $ city ")"); if ($ result == true) (echo "Az adatok mentése sikeres!";) else (echo "Hiba történt, kérjük, próbálja újra.";)


Mint látható, semmi bonyolult! Ha szükséges, hozzáadhat egy másik mezőt, és még sok más ...

A megjegyzések átkerültek a blogból

SERGEY
2016. 09. 14., 01:25
Jó napot!
Érdekel ez a kérdés: hogyan lehet a legegyszerűbben megszervezni az adatok és a programbeállítások tárolását adatbázis használata nélkül? Nem akarok MySQL -hez vagy Accesshez kötődni.

ADMIN
2016. 09. 14., 22:14
Helló!

Tulajdonságok. Beállítások
App. Config
XML fájl
szerializálás
Próbáljon valamit kiválasztani a listából.

NIKOLAI
2016. 09. 16., 02:28
Helló, hogyan távolíthatja el a dataGridVIew kiemelt sorát a dataGridVIew és a phpMyAdmin rendszerből.

PhpMyAdmin? Ez csak egy héj az adatbázis kezeléséhez, elmagyarázná?

NIKOLAI
2016. 09. 18., 02:24
el kell távolítania a kijelölt sort a DataGridView -ból és az adatbázisból.

ADMIN
2016. 09. 19., 07:00
Sor törlése a Mysql adatbázisban - cikk hozzáadva.

NIKOLAI
2016. 09. 20., 09:20
Nagyon köszönöm.

DIMA
2016. 09. 20., 10:24
Helló Ily módon nem a DataGridView, hanem a ComboBox segítségével valósítja meg? Ha igen, hogyan? Kösz.

ADMIN
2016. 09. 22., 03:21
Szia. Példa:

GENNADY
2016. 09. 22., 18:25
miért írom be a következő szöveget a System.Windows.Forms.TextBox, Text adatbázisba: ge

Egyébként ez a (ge) a gén végén van írva, annak ellenére, hogy a szöveg a táblázat beállításaiban van megadva. A gén szavának tovább kellett volna illeszkednie, ezt a táblázatot beviszem a programomba, és kiderül, hogy megmutatja nekem ezt a felesleges szöveget

ADMIN
2016. 04. 24., 04:17
Valószínűleg az SQL lekérdezés helytelenül van írva, például:

A textBox1 mezőbe írja be a nevet: Gena.

Sql lekérdezés: "Beszúrás a tábla nevének értékeibe (textBox1, ..)"; Eredmény: System.Windows.Forms.TextBox

És át kell adnia: "Beszúrás a tábla nevének értékeibe (textBox1.Text, ..)";
Eredmény: Gene

GENNADY
2016. 04. 24., 18:41
Így van ez. Kösz

SERGEY
2016. 09. 25., 11:51
Helló. Hogyan valósítható meg az adatbázishoz való hozzáadás a textBoxon keresztül?

ADMIN
2016. 09. 26., 20:53
Elvileg minden ugyanaz. Vegyük például az utolsó példát, ahol szüksége van:

// paraméterek létrehozása és hozzáadása a cmd.Parameters.AddWithValue gyűjteményhez ("@ Name", textBox1.Text); cmd.Parameters.AddWithValue ("@ LastName", textBox2.Text);

most a paraméterek: Név és Vezetéknév megkapják a szövegdobozokban megadott értékeket, és átviszik az adatbázisba

LINARA
2016. 09. 27., 17:45
Helló, hogy van a dataGridVIew és a phpMyAdmin kiemelt sora?

ADMIN
2016. 09. 29., 02:06
Nem tudom, hogy a kiemelt sor hogyan valósítható meg a phpMyAdmin rendszerben. A dataGridView -ban például ezt a SelectionChanged esemény segítségével lehet megtenni.

PSH
2016. 09. 30., 03:48
2 Linara:
Ha így szeretné szerkeszteni a karakterláncokat, ragadjon meg egy eszközt a la HediSQL, csípje és módosítsa a karakterláncokat.

2admin
Jó nap! Köszönöm az anyagokat - minden nagyon jól le van írva)
Kérdés: Adatokat adok hozzá ehhez a lekérdezéshez (ez egy teszt):

String sql = "INSERT INTO users (` FIO`, `Tour`,` Count`, `Cost`,` Date`, `Passport`,` Birth`) VALUES ("Kolyan", "Moscow", "1 + 1 ", 1100," 2011-11-11 "," 1111 1111 "," 11.11.1900 ");";

Az adatok bevitele minden rendben van, de az adatbázisban (mysql) a cirill betű helyett "????" van.

A Visual Studio szerint a System.String egy Unicode sorozat.

Kipróbálva is:

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 ";

De nem segít ..
Mi lehet a baj? Különböző kódolású VS és DB? Vagy mi?
Küldhetne mit olvasni / módosítani.
Kösz

ADMIN
2016.10.01., 09:49
Szia.

Az adatbázisban (és a táblázatban) az összehasonlítás utf_general_ci

Van ilyen összehasonlítás? Talán utf8_general_ci?

Általában egy Mysql adatbázist hoznak létre az utf8_general_ci összehasonlítás kiválasztásával, így a cirill betűvel nincs probléma, kivéve persze, ha a kliens nem jön a szerverre.

Összehasonlításként a COLLATION -t használjuk, de ebben az esetben a karakterkészlet fontos. Ezért először meg kell győződnie arról, hogy helyesen van beállítva a szerveren, például az utf8 -ban, és nem a latin1 -ben.

Amikor a .net -en keresztül csatlakozik, az (alapértelmezett) csatlakozó latin1 -et használ, ezért néha kifejezetten meg kell adnia az utf8 kódolást a kapcsolati karakterláncban:

MySqlConnection mycon; mycon = új MySqlConnection ("szerver = 127.0.0.1; uid = vasya; pwd = 123; adatbázis = teszt; Karakterkészlet = utf8;"); // MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8";

PSH
2016.10.01., 11:34
Igazad van, leírt, utf8_general_ci!
Igen, segített ;; Charset = utf8;
Nagyon köszönöm!

SERGY
2016.10.02., 11:02
Köszönöm a szükséges működő példát. Kérdés
Létrehoztam egy szövegmezőt, amelybe szeretném megadni az adatbázis IP -címét, de nem tudom, hogyan lehet ezeket az adatokat itt helyettesíteni

String conStr = " [e -mail védett]; user = teszt; "+
"adatbázis = teszt; jelszó = teszt;";
Kérem, mondja meg, hogyan lehet a szövegmezőkből adatokat beilleszteni ebbe a konstrukcióba az ablakokba….

ADMIN
2016. 03. 10., 11:50
"[e -mail védett] 2. Szöveg; user = ...
Általában jobb, ha a tulajdonságokat használja, mint ebben a cikkben, vagy a String.Format () metódust egy ilyen karakterlánc helyett.

OLGA2203
2017. 05. 15., 20:14

String Connect = „Szerver = 127.0.0.1; Port = 3306; Adatbázis = bázis; Adatforrás = localhost; felhasználó = root;”; MySqlConnection con = új MySqlConnection (Connect); con.Open (); // Kapcsolat létrehozása az adatbázissal. MySqlCommand cmd = új MySqlCommand (); cmd.CommandText = @”INSERT INTO tovar (azonosító, kategória, név, védjegy, ár, fotó, méret, szín, anyag, szám) ÉRTÉKEK (@pr, @Category, @Name, @TradeMark, @Price, @Photo, @Méret, @Szín, @Anyag, @Szám) ”; cmd.Parameters.AddWithValue („@ pr”, számláló); cmd.Parameters.AddWithValue („@ kategória”, comboBox1.SelectedItem.ToString ()); cmd.Parameters.AddWithValue („@ Név”, textBox1.Text); cmd.Parameters.AddWithValue („@ TradeMark”, textBox2.Text); cmd.Parameters.AddWithValue („@ Ár”, 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 („A hozzáadás sikeres volt”, „A hozzáadás sikeres volt”, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

Az „Oszlop„ Azonosító ”nem lehet null” hibaüzenet jelenik meg, eltávolítom az azonosító oszlop kiegészítését - ugyanezt írja a következő oszlopról stb.
Ha a VALUES értékben zárójelbe írok bármilyen állandó értéket, akkor a sor hozzáadódik az alaphoz.
Kérem, mondja meg, mi a probléma? Pontosan be kell írnom az adatbázisba az űrlapon megadott adatokat és értékeket