V tomto článku sa pozrieme na to, ako pomocou PHP vkladať riadky do databázy MySQL.

Krok 1 - Vytvorenie tabuľky

Najprv musíte vytvoriť tabuľku s údajmi. Ide o jednoduchý postup, ktorý možno vykonať pomocou pomocou phpMyAdmin v ovládacom paneli hostingu.

Po prihlásení do phpMyAdmin uvidíte rozhranie, ako je toto:

Vytvorme tabuľku s názvom Študenti v databáze u266072517_name kliknutím na tlačidlo „Vytvoriť tabuľku“. Potom uvidíme nová stránka, na ktorom nastavíme všetky potrebné parametre tabuľky:

Toto je najjednoduchšie nastavenie, ktoré možno použiť pre stôl a získať Ďalšie informácie o štruktúre tabuliek/databáz.

Možnosti stĺpcov:

  • Názov je názov stĺpca, ktorý sa zobrazuje v hornej časti tabuľky.
  • Typ je typ stĺpca. Napríklad sme zvolili varchar, pretože budeme zadávať reťazcové hodnoty.
  • Dĺžka/Hodnoty – používa sa na určenie maximálnej dĺžky, ktorú môže mať položka v tomto stĺpci.
  • Index – Pre pole „ID“ sme použili „Primárny“ index. Pri vytváraní tabuľky sa odporúča použiť iba jeden stĺpec ako primárny kľúč. Používa sa na zoznam záznamov v tabuľke a je potrebný pri nastavovaní tabuľky. Označil som aj "A_I", čo je skratka pre "Auto Increment" - možnosť automatického priradenia počtu záznamov (1,2,3,4...).
    Kliknite na tlačidlo Uložiť a tabuľka sa vytvorí.

Krok 2. Napísanie kódu PHP na vloženie údajov do MySQL.

Možnosť 1 – metóda MySQLi

Najprv musíte vytvoriť spojenie s databázou. Potom použijeme dotaz SQL INSERT. Príklad úplného kódu:

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

Prvá časť kódu (riadok 3 - 18) slúži na pripojenie k databáze.

Začnime riadkom #19:

$sql = "INSERT INTO Študenti (meno, priezvisko, email) VALUES ("Thom", "Vial", " [e-mail chránený]")";

Vkladá údaje do Databáza MySQL. INSERT INTO je príkaz, ktorý pridáva údaje do zadanej tabuľky. V našom príklade sa údaje pridajú do tabuľky Študenti.

Ďalej nasleduje vymenovanie stĺpcov, do ktorých sa vkladajú hodnoty: meno, priezvisko, e-mail. Údaje budú doplnené v určenom poradí. Ak by sme napísali (e-mail, priezvisko, meno), hodnoty by boli pridané v inom poradí.

Ďalšou časťou je príkaz VALUES. Tu špecifikujeme hodnoty pre stĺpce: meno = Thom, priezvisko = liekovka, e-mail = [e-mail chránený]

Spustili sme dotaz pomocou kódu PHP. AT programový kód Dotazy SQL musia byť označené úvodzovkami. Ďalšia časť kódu (riadok 20-22) kontroluje, či bola naša požiadavka úspešná:

if (mysqli_query($conn, $sql)) ( echo "Nový záznam bol úspešne vytvorený"; )

Tento kód zobrazí správu, že požiadavka bola úspešná.

A posledná časť (riadok 22 - 24) zobrazí upozornenie, ak požiadavka nebola úspešná:

else ( echo "Chyba: " . $sql."
" .mysqli_error($conn); )

Možnosť 2 – PHP Data Object Method (PDO)

Najprv sa musíme pripojiť k databáze vytvorením nového objektu PDO. Pri práci s ním budeme používať rôzne metódy CHOP. Objektové metódy sa nazývajú takto:

$the_Object->the_Method();

PDO vám umožňuje „pripraviť“ kód SQL pred jeho vykonaním. SQL dotaz sa pred spustením vyhodnotí a „opraví“. Napríklad najjednoduchší útok SQL injection je možné vykonať jednoduchým zadaním kódu SQL do poľa formulára. Napríklad:

Keďže ide o syntakticky správny SQL, bodkočiarka urobí z DROP DATABASE user_table nový SQL dotaz a užívateľská tabuľka sa zruší. Pripravené výrazy (viazané premenné) neumožňujú ukončiť pôvodný dotaz bodkočiarkami a úvodzovkami, preto príkaz DROP DATABASE nebude nikdy vykonaný.

Ak chcete použiť pripravené príkazy, musíte napísať novú premennú, ktorá volá metódu Prepare() databázového objektu.

Správny kód:

getMessage(); ) // Nastavte premenné pre osobu, ktorú chceme pridať do databázy $first_Name = "Thom"; $last_Name = "Vialka"; $email = " [e-mail chránený]"; // Vytvorte premennú, ktorá volá metódu Prepare() databázového objektu // Dotaz SQL, ktorý chcete vykonať, sa zadá ako parameter a zástupné symboly sa zapíšu takto: zástupný_názov $my_Insert_Statement = $my_Db_Connection->prepare( "INSERT INTO Students (meno, priezvisko, email) VALUES (:meno, :priezvisko, :e-mail)"); // Teraz povieme skriptu, na akú premennú sa každý zástupný symbol vzťahuje, aby sme mohli použiť metódu bindParam() // prvý parameter je zástupný symbol vo vyššie uvedenom príkaze, druhý je premenná, ktorá by mala odkazovať na $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:priezvisko, $last_Name); $my_Insert_Statement->bindParam (:email, $email); // Spustite dotaz pomocou údajov, ktoré sme práve definovali // Metóda execute() vráti hodnotu TRUE, ak bola úspešná, a FALSE, ak nie, takže si môžete vytlačiť vlastnú správu, ak ($my_Insert_Statement ->execute()) ( echo "Nové reco rdvytvorené úspešne"; ) else ( echo "Nedá sa vytvoriť záznam"; ) // V tomto bode môžete zmeniť údaje premennej a spustiť dotaz na pridanie ďalších údajov do údajov databázy do databázy $first_Name = "John"; $priezvisko = "Smith"; $email = " [e-mail chránený]"; $my_Insert_Statement->execute(); // Spustí sa znova, keď sa premenná zmení if ($my_Insert_Statement->execute()) ( echo "Nový záznam bol úspešne vytvorený"; ) else ( echo "Nedá sa vytvoriť záznam";

Na riadkoch 28, 29 a 30 použijeme metódu bindParam() databázového objektu. Existuje aj metóda bindValue(), ktorá je veľmi odlišná od predchádzajúcej.

  • bindParam() – Táto metóda vyhodnotí údaje, keď sa dosiahne metóda execute(). Keď skript prvýkrát dosiahne metódu execute(), zistí, že $first_Name sa zhoduje s "Thom". Potom naviaže túto hodnotu a spustí dotaz. Keď skript dosiahne druhú metódu execute(), vidí, že $first_Name sa teraz zhoduje s "John". Potom naviaže túto hodnotu a znova spustí dotaz s novými hodnotami. Je dôležité si zapamätať, že sme raz definovali dotaz a opätovne ho použili s rôznymi údajmi v rôznych bodoch skriptu.
  • bindValue() – Táto metóda vyhodnotí údaje hneď, ako sa dosiahne bindValue(). Pretože $first_Name bol nastavený na "Thom", po dosiahnutí bindValue() sa použije zakaždým, keď sa zavolá metóda execute() na $my_Insert_Statement.
    Všimnite si, že znova používame premennú $first_Name a druhýkrát jej priraďujeme novú hodnotu. Po spustení skriptu budú obe mená uvedené v databáze, napriek tomu, že premenná $first_Name na konci skriptu má hodnotu „John“. Pamätajte, že PHP pred spustením skontroluje celý skript.

Ak aktualizujete skript a nahradíte bindParam hodnotou bindValue, vložíte „Thom Vial“ dvakrát do databázy a John Smith bude ignorovaný.

Krok 3 – Potvrdenie úspechu a vyriešenie problémov

Ak bola požiadavka na vloženie riadkov do databázy úspešná, zobrazí sa nám nasledujúca správa:

Riešenie bežných chýb

MySQLi

V každom inom prípade sa zobrazí chybové hlásenie. Urobme napríklad jednu chybu syntaxe v kóde a dostaneme nasledovné:

Prvá časť kódu je v poriadku, pripojenie bolo úspešne nadviazané, ale SQL dotaz zlyhal.

"Chyba: INSERT INTO Students (meno, priezvisko, email) VALUES ("Thom", "Vial", " [e-mail chránený]") Máte chybu v syntaxi SQL; skontrolujte príručku, ktorá zodpovedá verzii vášho servera MySQL, kde nájdete správnu syntax v blízkosti "(meno, priezvisko, email) VALUES ("Thom", "Vial", " [e-mail chránený]")" v riadku 1"

Vyskytla sa chyba syntaxe, ktorá spôsobila zlyhanie skriptu. Chyba bola tu:

$sql = "INSERT INTO Študenti (meno, priezvisko, email) VALUES ("Thom", "Vial", " [e-mail chránený]")";

Použili sme kučeravé strojky namiesto normálnych strojčekov. Toto je nesprávne a skript vykázal chybu syntaxe.

CHOP

Na riadku 7 pripojenia PDO je chybový režim nastavený na "zobrazenie všetkých výnimiek". Ak by bola nastavená iná hodnota a požiadavka by zlyhala, nedostali by sme žiadne chybové hlásenia.

Toto nastavenie by sa malo používať iba pri vývoji skriptu. Ak je táto možnosť povolená, môžu sa zobrazovať názvy databáz a tabuliek, ktoré je z bezpečnostných dôvodov najlepšie ponechať skryté. Vo vyššie opísanom prípade, keď sa namiesto bežných zátvoriek použili zložené zátvorky, chybové hlásenie vyzerá takto:

Závažná chyba: Uncaughtexception "PDOException" so správou "SQLSTATE: Syntaktická chyba alebo porušenie prístupu: 1064 Máte chybu v syntaxi SQL; skontrolujte príručku, ktorá zodpovedá verzii vášho servera MySQL, kde nájdete správnu syntax, ktorá sa má použiť v blízkosti "(meno, priezvisko, email) VALUES ("Thom", "Vial", " [e-mail chránený]")" v riadku 1"

Ďalšie možné problémy:

  • Stĺpce sú nesprávne zadané (neexistujúce stĺpce alebo pravopisná chyba v ich názvoch).
  • Jeden typ hodnoty je priradený stĺpcu iného typu. Napríklad, ak sa pokúsite vložiť číslo 47 do stĺpca Názov, dostanete chybu. Tento stĺpec musí používať hodnotu reťazca. Ak by sme však zadali číslo v úvodzovkách (napríklad „47“), fungovalo by to, pretože ide o reťazec.
  • Uskutočnil sa pokus o zadanie údajov do tabuľky, ktorá neexistuje. Rovnako ako pravopisná chyba v názve tabuľky.

Po úspešnom zadaní údajov uvidíme, že boli pridané do databázy. Nižšie je uvedený príklad tabuľky, do ktorej boli pridané údaje.

Od autora: oh, nemôžete vyhodiť slová z piesne! Môžu ich však vymazať, aktualizovať alebo vložiť iní. Hlavná vec je, že slová sú vložené do databázy. Dnes vám povieme, ako sa zapisujú dáta do MySQL a ako to urobiť správne, aby pesnička znela!

Pridávanie záznamov pomocou phpMyAdmin

Shell phpMyAdmin na správu MySQL DBMS implementuje „odľahčenú“ funkcionalitu na pridávanie nových záznamov do databázových tabuliek. Pre svoju jednoduchosť je ideálny ako pre zelených „atrapy“, tak aj pre „lenivých“ profesionálov.

Ak chcete do tabuľky zadať nové informácie, mali by ste vstúpiť do programu s právami správcu. Potom v zoznamoch vľavo vyberte požadovanú databázu a tabuľku. Potom v hornom menu prejdite cez položku "Vložiť".

Potom, aby ste urobili záznam v databáze MySQL, vyplňte ďalšie okno pre všetky stĺpce poľa "Hodnota" a kliknite na tlačidlo "OK" v dolnej časti.

Snímka obrazovky vyššie ukazuje, že upravená tabuľka „Zvieratá“ pozostáva z dvoch stĺpcov (polí): id a name. Druhá časť špecifikuje typ každého zo stĺpcov. Potrebujeme zadať iba hodnotu do poľa názvu, pretože stĺpec id je primárny kľúč a pri vytváraní tabuľky bol nastavený na automatické zvyšovanie. To znamená, že hodnotu poľa id vygeneruje automaticky MySQL, pričom sa k predchádzajúcej celočíselnej hodnote pridá 1.

Ak chcete zistiť, ktoré pole dátových záznamov v MySQL je primárny kľúč (primárny kľúč), v phpMyAdmin prejdite do menu (s vybranou tabuľkou vľavo v zozname) na hornú záložku menu "Štruktúra". Tu je popis všetkých polí tabuľky, ich typ a ďalšie charakteristiky.

Vkladanie údajov pomocou SQL dotazov

Ale phpMyAdmin je len obal a skutoční správcovia "hovoria" so serverom MySQL pomocou štruktúrovaného dotazovacieho jazyka. To znamená, že sa s ním „rozprávajú“ v jazyku SQL. Keďže sa snažíme stať skutočnými profesionálmi, v rámci preberanej témy sa trochu „ponoríme“ do štúdia SQL príkazov. Tu je dotaz, zadaním ktorého do poľa „SQL“ vytvoríte rovnakú databázu:

CREATE TABLE Animal (id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id));

CREATE TABLE Zviera (ID MEDIUMINT NOT NULL AUTO_INCREMENT ,

meno CHAR (30) NOT NULL, PRIMARY KEY (id));

Po vytvorení tabuľky a zápise údajov do databázy MySQL (cez záložku „Vložiť“) vám program oznámi, že zvieratám pribudol riadok s hodnotou identifikátora 1. A o niečo nižšie v okne editora zobrazí sa kód dotazu, ktorý nám shell vygeneroval a odoslal na databázový server.

Vyžiadať kód:

INSERT INTO `my_db1`.`animal` (`id`, `name`) VALUES (NULL, "Mačka");

INSERT INTO ` my_db1 ` . ` zviera ` (` id ` , ` meno ` ) HODNOTY (NULL, "Mačka" );

Poďme si to naštudovať podrobnejšie. SQL používa príkaz INSERT na vloženie nového riadku do tabuľky. Informuje server, že do databázovej tabuľky (my_db1 . animal) musíte vložiť určené hodnoty do polí id a name (VALUES (NULL, 'Cat').

Upozorňujeme, že pre stĺpec id neuvádzame číselnú hodnotu, ale NULL, keďže sme pre toto pole „povolili“ automatické dopĺňanie (automatické zvyšovanie).

Ako vložiť príspevok pomocou PHP

Všetko, čo sme uvažovali, je len „predohrou“ hlavnej akcie, v ktorej „Jeho výsosť“ vstupuje na scénu serverový programovací jazyk PHP. Práve vďaka nemu sa MySQL ako DBMS tak rozšírilo na webe.
Veľká časť World Wide Web je postavená na množstve týchto dvoch internetových technológií. Kamkoľvek sa pozriete, všade ich nájdete: v moderných CMS, „samom písaných“ motoroch a na serveri.

Nie je žiadnym prekvapením, že PHP poskytuje toľko vstavaných funkcií na zapisovanie údajov do MySQL. My sa však zameriame na najdôležitejšie z nich. Tu je kód, ktorý pridá nové „zviera“ do tabuľky zvierat. Ak sa budete veľmi snažiť, tak týmto spôsobom zoženiete celý zverinec :)

$con_str=mysql_connect("localhost", "root", "", "db1"); if(mysql_connect("localhost","root"))( echo "Ahoj!!"; ) mysql_select_db("db1",$con_str); $query_str="INSERT INTO `db1`.`zviera` (`id`, `name`) VALUES (NULL, "pes")"; mysql_query($query_str); mysql_close();

$ con_str = mysql_connect ("localhost" , "root" , "", "db1" );

if (mysql_connect("localhost" , "root" ) ) (

echo "Ahoj!!" ;

mysql_select_db("db1" , $ con_str ) ;

$query_str= "INSERT INTO `db1`.`animal` (`id`, `name`) VALUES (NULL, "dog")";

mysql_query($query_str) ;

mysql_close();

Tento kód je potrebné vložiť do súboru PHP a umiestniť ho na strane servera.

Pomocou funkcie mysql_connect() sa pripojíme k databázovému serveru MySQL. Ako argumenty funkcia berie hostiteľa, používateľské meno DBMS, heslo a názov databázy, ku ktorej sa má pripojiť. Máme prázdne heslo, pretože používame server nainštalovaný na lokálnom (klientskom) počítači.

Na demonštráciu všetkých popísaných príkladov zápisu do databázy MySQL pomocou PHP sme použili „gentleman's kit“ z Denveru. Zahŕňa lokálny server Apache, server MySQL, phpMyAdmin a niekoľko ďalších užitočných nástrojov na kódovanie a testovanie.

Potom sme v logickom bloku if skontrolovali pripojenie k databázovému serveru. Potom sme vo funkcii mysql_select_db () určili základňu, ku ktorej sa pripojíme. Pomocou funkcie mysql_query() sme spustili SQL dotaz zapísaný do premennej $query_str. A na konci bolo nadviazané spojenie uzavreté (funkcia mysql_close()). Ak sa teraz pozrieme do nášho zverinca (stolové zviera), nájdeme tam nového „domáceho miláčika“.

Aby to bolo napísané v MySQL, PHP „láskavo“ poskytlo všetky potrebné funkcie. Hlavná vec, na ktorej sa začiatočníci pri používaní SQL v programovom kóde „vypaľujú“, je nesprávne písanie dotazov, porušenie syntaxe a striedanie znakov na escapovanie (úvodzovky).

Aby ste sa vyhli tomu, že sa vám na hlave objavia ďalšie „sivé“ vlasy, je lepšie skontrolovať správnosť pravopisu žiadosti pomocou phpMyAdmin. Ak to chcete urobiť, vložte kód SQL do editora programu a spustite ho na vykonanie. Ak niečo nie je v poriadku, aplikácia začne „nadávať“, zobrazí červenú správu a označí miesto chyby.

Ako vidíte, pomocou MySQL môžete „zbierať“ svoj zverinec a správne meniť slová akejkoľvek „piesne“. A na zápis do databázy MySQL je PHP perfektné, preto vám odporúčame, aby ste sa s týmto „skvelým“ programovacím jazykom „úzko“ spriatelili!

A sú dané
. A teraz si povieme ako pridať obrázky do databázy MySQL cez formulár pomocou PHP.

Vytvorenie poľa v databáze MySQL na pridanie obrázka

Na začiatok by som to chcel povedať ukladanie obrázkov do databázy MySQL je potrebné definovať jedno z polí tabuľky ako odvodené od typu BLOB.

Skratka BLOB znamená Binary Large Object. Typ úložiska údajov BLOB má niekoľko možností:

  • TINYBLOB - Môže uložiť až 255 bajtov
  • BLOB dokáže uložiť až 64 kilobajtov informácií
  • MEDIUMBLOB – až 16 megabajtov
  • LONGBLOB až 4 gigabajty

Pre uloženie obrazového súboru do databázy musíte načítať súbor do premennej a vytvoriť dotaz na pridanie údajov do tabuľky.

Príprava formulára na stránke na pridanie obrázka do databázy MySQL

V mojom prípade to bola úloha pridať dva obrázky do databázy cez formulár pomocou PHP. Máme formulár s dvoma poľami a tlačidlom Odoslať:

form name="form1" method="post" action="add_image.php"
enctype="multipart/form-data"

Pripomeňme si, že atribút akcie určuje súbor, ktorý načíta obrazové súbory. Atribút enctype určuje, ako sa má obsah formulára kódovať, a informácie o nahrávaní súborov. Pozrite sa, ako správne vyplniť atribút enctype vyhnúť sa .

Poznámka: podpora pre nahrávanie viacerých súborov bola zavedená vo verzii 3.0.10.

Písanie PHP kódu na uloženie obrázka do databázy MySQL

Keďže v atribúte posielame dva súbory názov za slovom označujeme „userfile“ hranatými zátvorkami, čím dávame najavo, že posielame niekoľko súborov pomocou poľa, ktoré obsahuje atribúty súboru:

$_FILES['userfile']['name']

Pôvodný názov súboru na klientskom počítači.

$_FILES['userfile']['type']

mime typ súboru, ak prehliadač tieto informácie poskytol.
Príklad: "image/gif" .

$_FILES['userfile']['size']

$_FILES['userfile']['tmp_name']

Dočasný názov súboru, pod ktorým bol nahraný súbor uložený na serveri.

Ako získať hodnoty každého súboru?

Predpokladajme napríklad, že sa odosielajú súbory s názvom /home/test/1.jpg a /home/test/2.jpg.

V tomto prípade $_FILES['userfile']['name']
bude obsahovať hodnotu 1.jpg,
a $_FILES['userfile']['name']
- hodnota 2.jpg

Podobne $_FILES['userfile']['size'] bude obsahovať hodnotu veľkosti súboru 1.jpg atď. Teraz zvážte kód súboru add_image.php, ktorý bol špecifikovaný v atribúte form akcie.

1024*1024||$image_size==0) ( $ErrorDescription="Každý obrázok nesmie presiahnuť 1Mb! Obrázok nemožno pridať do databázy."; return ""; ) // Ak súbor dorazil, skontrolujte, či grafiku // to (z bezpečnostných dôvodov) if(substr($_FILES["userfile"]["type"][$num], 0, 5)=="image") ( //Prečítajte si obsah súboru $image=file_get_contents($_FILES ["userfile"]["tmp_name"][$num]); //Uniknutie špeciálnych znakov v obsahu súboru $image=mysql_escape_string($image); return $image; )else( ErrorDescription=" Nenahrali ste obrázok, takže ho nemožno pridať."; return ""; ) )else( $ErrorDescription="Nenahrali ste obrázok, pole je prázdne, takže súbor nie je možné pridať do databázy. "; return; ) return $obrazok; ) ?>

V tomto článku sme teda hovorili o tom, ako uložiť obrázok do databázy MySQL. , pomocou PHP.

Posledná aktualizácia: 1.11.2015

Na pridanie údajov sa používa výraz „INSERT“:

$query ="VLOŽTE DO HODNOT tovaru(NULL, " Samsung Galaxy III","Samsumg")";

Príkaz "INSERT" vloží jeden riadok do tabuľky. Po kľúčové slovo INTO určuje názov tabuľky a po VALUES je v zátvorkách uvedená množina hodnôt pre všetky stĺpce. Keďže v tabuľke máme tri stĺpce, uvádzame tri hodnoty.

Keďže v predchádzajúcej téme sme pri vytváraní tabuľky zadali poradie stĺpcov: id, názov, spoločnosť, v tomto prípade sa pre stĺpec id odošle NULL, pre názov „Samsung Galaxy III“ a pre spoločnosť „Samsumg“ .

Pretože stĺpec id je definovaný ako AUTO_INCREMENT, nemusíme preň špecifikovať konkrétnu číselnú hodnotu a môžeme odovzdať hodnotu NULL a MySQL priradí stĺpcu ďalšiu dostupnú hodnotu.

Teraz sa pozrime na pridávanie údajov pomocou príkladu. Vytvorme súbor create.php s nasledujúcim obsahom:

Údaje boli pridané"; ) // zatvorte pripojenie mysqli_close($link); ) ?>

Pridať nový model

Zadajte model:

Výrobca:

Tu sa kód pre interakciu s databázou kombinuje s funkčnosťou formulárov: pomocou formulára zadávame údaje, ktoré sa majú pridať do databázy.

Bezpečnosť a MySQL

Tu sme použili funkciu mysqli_real_escape_string(). Slúži na únikové znaky v reťazci, ktorý sa potom použije v dotaze SQL. Ako parametre berie objekt pripojenia a reťazec, ktorý sa má escapovať.

Preto v skutočnosti používame znak escape dvakrát: najprv pre výraz SQL pomocou funkcie mysqli_real_escape_string() a potom pre html pomocou funkcie htmlentities(). To nám umožní chrániť sa pred dvoma typmi útokov naraz: XSS útokmi a SQL injekciami.

Komentáre presunuté z blogu

SERGEI
14.09.2016 o 01:25 hod
Dobrý deň!
Zaujíma vás táto otázka: aký je najjednoduchší spôsob organizácie ukladania údajov a nastavení programu bez použitia databázy? Nechcem byť viazaný na MySQL alebo Access.

ADMIN
14.09.2016 o 22:14 hod
Ahoj!

Vlastnosti.Nastavenia
App.Config
XML súbor
serializácie
Skúste si vybrať jednu z nich zo zoznamu.

NIKOLAY
16.09.2016 o 02:28 hod
Dobrý deň, ako môžem odstrániť zvýraznený riadok v dataGridVIew z dataGridVIew a phpMyAdmin.

PhpMyAdmin? Toto je len shell na prácu s databázou, môžete vysvetliť?

NIKOLAY
18.09.2016 o 02:24 hod
je potrebné, aby bol vybraný riadok vymazaný z DataGridView az databázy.

ADMIN
19.09.2016 o 07:00 hod
Ako odstrániť riadok v databáze údaje mysql pridal článok.

NIKOLAY
20.09.2016 o 09:20 hod
Mnohokrat dakujem.

DIMA
20.09.2016 o 10:24 hod
Dobrý deň, môžete? tadiaľto implementovať nie cez DataGridView, ale cez ComboBox? Ak áno, ako? Ďakujem.

ADMIN
22.09.2016 o 03:21 hod
Ahoj. Príklad:

GENNADY
22.09.2016 o 18:25 hod
prečo by som mal pridávať takýto text do databázy System.Windows.Forms.TextBox, Text: ge

Mimochodom, toto (ge) na konci to píše gén, aj keď je text špecifikovaný v nastaveniach tabuľky.Slovo génu by sa malo zmestiť ďalej, zobrazujem túto tabuľku vo svojom programe a ukazuje sa že zobrazuje všetok tento pre mňa nepotrebný text

ADMIN
24.09.2016 o 04:17 hod
S najväčšou pravdepodobnosťou je SQL dotaz napísaný nesprávne, napríklad:

Do textBox1 zadáme názov: Gene.

Sql dotaz: "Vložiť do názvov tabuľky hodnôt(textBox1, ..)"; Výsledok: System.Windows.Forms.TextBox

A musíte odovzdať: "Insert into table name values(textBox1.Text, ..)";
Výsledok: Gena

GENNADY
24.09.2016 o 18:41 hod
je to tak. Vďaka

SERGEI
25.09.2016 o 11:51 hod
Ahoj. A ako implementovať pridávanie do databázy cez textBox?

ADMIN
26.09.2016 o 20:53 hod
Všetko je v princípe rovnaké. Zoberme si napríklad najnovší príklad, ktorý potrebuje:

//vytvorte parametre a pridajte ich do kolekcie cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue("@Priezvisko", textBox2.Text);

teraz parametre: Meno a Priezvisko dostanú hodnoty zadané do textových polí a odovzdajú ich do databázy

LINARA
27.09.2016 o 17:45 hod
Dobrý deň, ako je zvýraznený riadok v dataGridVIew a phpMyAdmin?

ADMIN
29.09.2016 o 02:06
Neviem, ako môžete vybrať riadok v phpMyAdmin. A napríklad v dataGridView to možno urobiť pomocou udalosti SelectionChanged.

PSH
30.09.2016 o 03:48 hod
2 Linara:
Ak naozaj chcete upravovať riadky, vezmite si nástroj a la HediSQL, upravte a upravte riadky.

2admin
Dobrý deň! Ďakujem za materiály - všetko je veľmi dobre uvedené)
Otázka: Údaje pridávam s nasledujúcou požiadavkou (je to testovacia):

String sql = "INSERT INTO users (`FIO`, `Tour`, `Count`, `Cena`, `Dátum`, `Pas`, `Narodenie`) HODNOTY ("Kolyan", "Moskva", "1+1" ", 1100, "2011-11-11", "1111 1111", "11/9/1900");";

Údaje sú zadané v poriadku, ale v databáze (mysql) namiesto azbuky sú „????“.

vizuálne štúdio hovorí, že System.String je sekvencia Unicode.

Tiež vyskúšané:

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

Ale nepomaha to..
Čo môže byť zlé? Rôzne kódovania VS a DB? Alebo čo?
Mohol by som poslať, čo treba čítať/zmeniť.
Vďaka

ADMIN
01.10.2016 o 09:49 hod
Ahoj.

V databáze (a v tabuľke) porovnávanie utf_general_ci

Existuje také porovnanie? Možno utf8_general_ci?

Zvyčajne vytvárajú databázu Mysql výberom porovnania utf8_general_ci, takže s azbukou nie sú žiadne problémy, pokiaľ, samozrejme, server neprijíma chyby od klienta.

COLLATION sa používa na porovnanie, ale v tomto prípade je dôležité kódovanie (charset). Preto sa najprv musíte uistiť, že je správne nastavený na serveri, napríklad v utf8, a nie latin1.

Pri pripájaní cez konektor .net (štandardne) sa používa latin1, takže niekedy musíte explicitne špecifikovať kódovanie utf8 v reťazci pripojenia:

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

PSH
01.10.2016 o 11:34 hod
Máš pravdu, opísal si sa, utf8_general_ci!
Áno pomohlo, ;Charset=utf8;
Ďakujem mnohokrát!

SERGIUS
02.10.2016 o 11:02
Ďakujem za pracovný príklad. Otázka
Vytvoril som textové pole, do ktorého by som chcel zadať IP adresu databázy, ale neviem, ako tu tento údaj nahradiť

String conStr = " [e-mail chránený];user=test;" +
"databaza=test;heslo=test;";
Povedzte mi, prosím, ako vložiť údaje z textových polí vo formulári systému Windows do tohto dizajnu….

ADMIN
03.10.2016 o 11:50 hod
"[e-mail chránený];užívateľ=...
Vo všeobecnosti je lepšie použiť vlastnosti namiesto takéhoto reťazca, ako v tomto článku, alebo metódu String.Format()

OLGA2203
15.05.2017 o 20:14

String Connect = “Server=127.0.0.1;Port=3306;Databáza=základňa;Zdroj údajov=localhost;user=root;”; MySqlConnection con = new MySqlConnection(Connect); con.Open(); //Vytvorte pripojenie k databáze. MySqlCommand cmd = new MySqlCommand(); cmd.CommandText = @”INSERT INTO tovar(ID,Kategória,Názov,Ochranná známka,Cena,Foto,Veľkosť,Farba,Materiál,Počet) HODNOTY (@pr, @kategória, @meno, @ochranná známka, @cena, @fotka, @Veľkosť, @Farba, @Materiál, @Počet)”; cmd.Parameters.AddWithValue("@pr",counter); cmd.Parameters.AddWithValue(“@Category”, comboBox1.SelectedItem.ToString()); cmd.Parameters.AddWithValue(“@Name”, textBox1.Text); cmd.Parameters.AddWithValue(“@Obchodná značka”, textBox2.Text); cmd.Parameters.AddWithValue(“@Cena”, 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(“Pridanie úspešné”, “Pridanie úspešné”, MessageBoxButtons.OK, MessageBoxIcon.Hviezdička);

Vyhodí sa chyba „Stĺpec 'ID' nemôže byť null“, odstránim pridanie do stĺpca ID - to isté sa píše o ďalšom stĺpci atď.
Ak do VALUES vložím nejaké konštantné hodnoty do zátvoriek, riadok sa pridá k základu.
Povedz mi, prosím, v čom je problém? Potrebujem do databázy zapísať presne údaje a hodnoty zadané cez formulár