Dodawanie do mysql przez php. Jak pisać do bazy danych MySQL za pomocą kodu PHP
Komentarze przeniesione z bloga
SERGEI
14.09.2016 o 01:25
Dzień dobry!
Interesuje mnie to pytanie: jak najłatwiej zorganizować przechowywanie danych i ustawień programu bez korzystania z bazy danych? Nie chcę być przywiązany do MySQL lub Access..
ADMINISTRATOR
14.09.2016 o 22:14
Witam!
Właściwości.Ustawienia
Konfiguracja aplikacji
plik XML
serializacja
Spróbuj wybrać coś z listy.
NIKOLAJ
16.09.2016 o 02:28
Witam, jak usunąć wybrany wiersz w dataGridVIew z dataGridVIew i phpMyAdmin.
PhpMyAdmin? To tylko powłoka do pracy z bazą danych, czy możesz to wyjaśnić?
NIKOLAJ
18.09.2016 o 02:24
musisz usunąć wybrany wiersz z DataGridView i bazy danych.
ADMINISTRATOR
19.09.2016 o 07:00
Jak usunąć wiersz w bazie Mysql - dodany artykuł.
NIKOLAJ
09/20/2016 o 09:20
Wielkie dzięki.
DIMA
20.09.2016 o 10:24
Witam, czy możesz? tą drogą implementować nie przez DataGridView, ale przez ComboBox? Jeśli tak to jak? Dziękuję Ci.
ADMINISTRATOR
22.09.2016 o 03:21
Dzień dobry. Przykład:
GENNADY
22.09.2016 o 18:25
dlaczego wprowadzam następujący tekst do bazy danych System.Windows.Forms.TextBox, Text: ge
Swoją drogą to jest (ge) na końcu jest zapisany gen, mimo że tekst jest określony w ustawieniach tabeli.Słowo genu powinno pasować dalej, wprowadzam tę tabelę do mojego programu i okazuje się, że wyświetla mi cały ten niepotrzebny tekst
ADMINISTRATOR
24.09.2016 o 04:17
Najprawdopodobniej zapytanie SQL jest napisane niepoprawnie, na przykład:
W textBox1 wpisz nazwę: Gena.
Zapytanie Sql: "Wstaw do tabeli wartości nazw (textBox1, ..)"; Wynik: System.Windows.Forms.TextBox
I musisz przekazać: „Wstaw do wartości nazwy tabeli (textBox1.Text, ..)”;
Wynik: Gene
GENNADY
24.09.2016 o 18:41
Tak to jest. Dziękuję Ci
SERGEI
25.09.2016 o 11:51
Dzień dobry. Jak zaimplementować dodawanie do bazy danych przez textBox?
ADMINISTRATOR
26.09.2016 o 20:53
W zasadzie wszystko jest takie samo. Na przykład weźmy ostatni przykład, w którym potrzebujesz:
// utwórz parametry i dodaj je do kolekcji cmd.Parameters.AddWithValue ("@ Name", textBox1.Text); cmd.Parameters.AddWithValue („@ LastName”, textBox2.Text);
teraz parametry: Name i LastName otrzymują wartości wpisane w pola tekstowe i przenoszą je do bazy danych
LINARA
27.09.2016 o 17:45
Witam, jak wygląda podświetlony wiersz w dataGridVIew i phpMyAdmin?
ADMINISTRATOR
29.09.2016 o 02:06
Nie wiem, jak można zrobić podświetloną linię w phpMyAdmin. Na przykład w dataGridView można to zrobić za pomocą zdarzenia SelectionChanged.
PSH
30.09.2016 o 03:48
2 linijka:
Jeśli w ten sposób chcesz edytować ciągi, chwyć narzędzie w stylu HediSQL, dostosuj i zmodyfikuj ciągi.
2administratorzy
Dobry dzień! Dzięki za materiały - wszystko bardzo fajnie powiedziane)
Pytanie: Dodaję dane z tym zapytaniem (jest to zapytanie testowe):
String sql = "INSERT INTO users (` FIO`, `Tour`,` Count`, ` Cost`,` Date`, `Paszport`,` Birthday`) WARTOŚCI ("Kolyan", "Moskwa", "1 + 1 ", 1100", 11.11.2011 "," 1111 1111 "," 11.09.1900 ");";
Dane są wpisane wszystko ok, ale w bazie (mysql) zamiast cyrylicy są "????".
Visual Studio mówi, że System.String to sekwencja Unicode.
Próbowałem również:
ALTER BAZA DANYCH `test` UKŁADANIE" koi8r_general_ci "; ALTER TABLE `użytkownicy` COLLATE =" koi8r_general_ci "; ALTER BAZA DANYCH `test` SORTUJ" utf8_unicode_ci "; ALTER TABLE `użytkownicy` COLLATE =" utf8_unicode_ci ";
Ale to nie pomaga…
Co może być nie tak? Inne kodowanie dla VS i DB? Albo co?
Mogę wysłać co czytać/zmienić.
Dziękuję Ci
ADMINISTRATOR
01.10.2016 o 09:49
Dzień dobry.
W bazie danych (i w tabeli) zestawienie to utf_general_ci
Czy istnieje takie porównanie? Może utf8_general_ci?
Zazwyczaj bazę danych Mysql tworzy się wybierając porównanie utf8_general_ci, więc nie ma problemów z cyrylicą, o ile oczywiście klient nie przyjdzie na serwer.
Do porównań używana jest funkcja COLLATION, ale w tym przypadku ważny jest zestaw znaków. Dlatego najpierw musisz upewnić się, że jest poprawnie ustawiony na serwerze, na przykład w utf8, a nie latin1.
Podczas łączenia przez .net (domyślny) łącznik używa latin1, więc czasami musisz wyraźnie określić kodowanie utf8 w ciągu połączenia:
MySqlConnection mycon; mycon = new MySqlConnection ("serwer = 127.0.0.1; uid = vasya; pwd = 123; baza danych = test; Charset = utf8;"); // MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8";
PSH
01.10.2016 o 11:34
Masz rację, sam siebie opisałeś, utf8_general_ci!
Tak to pomogło, Charset = utf8;
Wielkie dzięki!
SERGI
10.02.2016 o 11:02
Dzięki za potrzebny przykład pracy. Pytanie
Utworzyłem pole tekstowe w którym chciałbym wpisać adres IP bazy danych, ale nie wiem jak tu podstawić te dane
Konstr ciągu = " [e-mail chroniony]; użytkownik = test; "+
"baza danych = test; hasło = test;";
Proszę mi powiedzieć, jak w tej konstrukcji wstawić dane z pól tekstowych do formularza okienkowego….
ADMINISTRATOR
10.03.2016 o 11:50
"[e-mail chroniony]; użytkownik = ...
Ogólnie lepiej jest użyć właściwości, jak w tym artykule, lub metody String.Format() zamiast takiego ciągu.
OLGA2203
15.05.2017 o 20:14
String Connect = "Serwer = 127.0.0.1; Port = 3306; Baza danych = podstawa; Źródło danych = host lokalny; użytkownik = root;"; MySqlConnection con = nowe MySqlConnection (Połącz); con.Otwarte (); // Nawiąż połączenie z bazą danych. MySqlCommand cmd = new MySqlCommand (); cmd.CommandText = @ ”INSERT INTO tovar (ID, Kategoria, Nazwa, Znak Towarowy, Cena, Zdjęcie, Rozmiar, Kolor, Materiał, Liczba) WARTOŚCI (@pr, @Category, @Name, @TradeMark, @Price, @Photo, @Rozmiar, @Kolor, @Materiał, @Liczba) ”; cmd.Parameters.AddWithValue („@ pr”, licznik); cmd.Parameters.AddWithValue („Kategoria @”, comboBox1.SelectedItem.ToString ()); cmd.Parameters.AddWithValue („@ Nazwa”, textBox1.Text); cmd.Parameters.AddWithValue („@ TradeMark”, textBox2.Text); cmd.Parameters.AddWithValue („@Cena”, Convert.ToInt32 (textBox4.Text)); cmd.Parameters.AddWithValue („@ Zdjęcie”, textBox3.Text); cmd.Parameters.AddWithValue („Rozmiar @”, textBox6.Text); cmd.Parameters.AddWithValue („@ Kolor”, textBox5.Text); cmd.Parameters.AddWithValue („@Materiał”, textBox8.Text); cmd.Parameters.AddWithValue („@ Count”, Convert.ToInt32 (textBox7.Text)); cmd.Połączenie = con; cmd.ExecuteNonQuery (); MessageBox.Show („Dodawanie powiodło się”, „Dodanie powiodło się”, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
Pojawia się błąd „Identyfikator kolumny” nie może być pusty”, usuwam dodatek do kolumny ID - to samo piszę o następnej kolumnie i tak dalej.
Jeśli w nawiasach wpiszę jakieś stałe wartości w WARTOŚCI, to linia zostanie dodana do bazy.
Czy możesz mi powiedzieć, na czym polega problem? Muszę wpisać do bazy dokładnie dane i wartości wprowadzone przez formularz
Ostatnia aktualizacja: 1.11.2015
Wyrażenie „INSERT” służy do dodawania danych:
$ query = "INSERT INTO tovars VALUES (NULL," Samsung Galaxy III "," Samsumg ")";
Wyrażenie INSERT wstawia jeden wiersz do tabeli. Później słowo kluczowe INTO to nazwa tabeli, a po VALUES w nawiasach podano zestaw wartości dla wszystkich kolumn. Ponieważ w tabeli mamy trzy kolumny, wskazujemy trzy wartości.
Ponieważ w poprzednim temacie przy tworzeniu tabeli określiliśmy następującą kolejność kolumn: id, name, company, w tym przypadku wartość NULL jest przekazywana dla kolumny id, „Samsung Galaxy III” dla nazwy i „Samsumg " dla towarzystwa.
Ponieważ kolumna id jest zdefiniowana jako AUTO_INCREMENT, nie musimy określać dla niej konkretnej wartości liczbowej i możemy przekazać wartość NULL, a MySQL przypisze kolejną dostępną wartość do kolumny.
Przyjrzyjmy się teraz dodawaniu danych na przykładzie. Stwórzmy plik utwórz.php o następującej treści:
Dodano dane";) // zamknij połączenie mysqli_close ($ link);)?>
Dodaj nowy model
Tutaj kod do interakcji z bazą danych łączy się z funkcjonalnością formularzy: za pomocą formularza wpisujemy dane, które mają zostać dodane do bazy.
Bezpieczeństwo i MySQL
Tutaj użyliśmy funkcji mysqli_real_escape_string(). Służy do ucieczki znaków w ciągu, który jest następnie używany w Zapytanie SQL... Jako parametry przyjmuje obiekt połączenia i ciąg znaków, które mają zostać zmienione.
Tak więc w rzeczywistości stosujemy dwie ucieczki znaków: najpierw dla wyrażenia sql za pomocą funkcji mysqli_real_escape_string(), a następnie dla html za pomocą funkcji htmlentities(). Pozwoli nam to chronić się jednocześnie przed dwoma rodzajami ataków: atakami XSS i iniekcją SQL.
W tym artykule przeanalizujemy być może niektóre z najważniejszych Zapytania SQL... Ten zapytania do dodawania i usuwania rekordów z tabeli bazy danych... Ponieważ BARDZO często jest to konieczne dodaj nowe rekordy do tabeli i zrób to w tryb automatyczny, to ten materiał jest wymagany do nauki.
Zacząć Zapytanie dołączające SQL nowe wejście na stół:
WSTAW wartości użytkowników (login, hasło) ("TestUser", "123456")
Podczas dodawania wpisu pierwsze polecenie to „ WŁÓŻ W", następnie nazwa tabeli, do której wstawiamy rekord. Następnie w nawiasach pojawiają się nazwy pól, które chcemy wypełnić. A potem w nawiasach po słowie" wartości„zaczynamy wypisywać wartości tych pól, które wybraliśmy. Po wykonaniu tego zapytania w naszej tabeli pojawi się nowy rekord.
Czasami to trwa zaktualizować rekord w tabeli, do tego jest następujące Zapytanie SQL:
UPDATE użytkowników SET login = "TestUser2", hasło = "1234560" WHERE login = "TestUser"
To zapytanie jest bardziej złożone, ponieważ ma konstrukcję „ GDZIE", ale o tym trochę niżej. Najpierw jest polecenie" AKTUALIZACJA"po której następuje nazwa tabeli, po której następuje" USTAWIĆ„opisujemy wartości wszystkich pól, które chcemy zmienić. Byłoby to proste, ale pojawia się pytanie:” Który rekord należy zaktualizować?". Do tego jest" GDZIE". W tym przypadku aktualizujemy rekord, pole" Zaloguj sie"co ma znaczenie" Użytkownik testowy„. Należy pamiętać, że jeśli takich rekordów jest kilka, to absolutnie wszystko zostanie zaktualizowane! Jest to bardzo ważne, aby zrozumieć, w przeciwnym razie ryzykujesz utratę stołu.
Porozmawiajmy trochę więcej o „ GDZIE„. Oprócz prostych testów na równość istnieją również nierówności, a także operacje logiczne: ORAZ oraz LUB.
AKTUALIZUJ użytkowników SET login = "TestUser2", hasło = "1234560" WHERE id< 15 AND login="TestUser"
ten Zapytanie SQL zaktualizuje te zapisy ID które są mniej 15 ORAZ pole " Zaloguj sie„ma znaczenie” Użytkownik testowy". Mam nadzieję, że wymyśliłeś projekt." GDZIE"bo to bardzo ważne. Dokładnie." GDZIE"używane, gdy pobieranie rekordów z tabel i jest to najczęściej używane zadanie podczas pracy z bazami danych.
I wreszcie prosty Zapytanie SQL do usunięcia rekordów z tabeli:
USUŃ Z użytkowników WHERE login = "TestUser2"
Po poleceniu „ USUŃ Z"jest nazwa tabeli, w której chcesz usunąć rekordy. Następnie opisujemy konstrukcję" GDZIE ". GDZIE”, dowolna ich liczba może zostać usunięta.
Lekcja będzie oparta na Formularz sprzężenie zwrotne wymagane w prawie każdej witrynie.======================================== ?>
Krok pierwszy: Tworzenie bazy danych w MySQL
Otwieramy phpMyAdmin(zawarte w podstawowym pakiecie) Denwer`a) i stwórz bazę z nazwą" baza_testowa", wybierz kodowanie" cp1251_general_ci".
======================================== ?>
Krok drugi: Tworzenie tabeli w MySQL przez Zapytania SQL
Możesz oczywiście stworzyć tabelę za pomocą standardowe narzędzia phpMyAdmin, ale struktura utworzonej tabeli będzie wyraźnie widoczna.
Utwórz tabelę o nazwie „ tabela_testowa"oraz z sześcioma polami z nazwami:
"nazwa" - tutaj będą przechowywane nazwy użytkowników;
"e-mail" - tutaj będą przechowywane adresy skrzynki elektroniczne użytkownicy;
"temat" - tutaj będzie zapisany temat wiadomości;
"wiadomość" - tutaj będą przechowywane wiadomości;
"data" - tutaj będzie przechowywana data wysłania wiadomości;
"id" - numer identyfikacyjny rekordu (linii), pole klucza.Zapytanie SQL:
utwórz tabelę test_table (
id int (11) nie null auto_increment,
nazwa varchar (255) nie jest null,
varchar adresu e-mail (255) nie jest null,
temat varchar (255) nie jest null,
tekst wiadomości nie jest pusty,
data danych nie jest pusta,
klucz podstawowy (id)
);======================================== ?>
Krok trzeci: Tworzenie formularzy
index.html:
Formularz zapisywania MySQL
Przykładowy formularz z zapisem danych w MySQL