Hoe een tabel toe te voegen in mysql php. Gegevens ophalen uit MySQL - een gids voor niet-sjamanen. Duiken in gestructureerde zoektaal

Hier is de algemene SQL-syntaxis voor het maken van MySQL-tabellen:

MAAK TABEL tabelnaam(kolomnaam kolomtype);

Nu gaan we de volgende tabel maken in de database-tutorials.

Tutorials_tbl(tutorial_id INT NIET NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NIET NULL, tutorial_author VARCHAR(40) NIET NULL, indieningsdatum DATUM, PRIMAIRE SLEUTEL (tutorial_id));

Hier zijn een paar punten die verduidelijking behoeven:

  • Het attribuutveld is niet NULL en wordt gebruikt omdat we niet willen dat het null is. Als de gebruiker daarom een ​​record met een NULL-waarde probeert te maken, wordt er een fout gegenereerd door MySQL.
  • Het auto_increment attribuutveld in MySQL zegt niet dat je door moet gaan en het volgende beschikbare nummer aan het ID-veld moet toevoegen.
  • Het sleutelwoord primaire sleutel wordt gebruikt om een ​​kolom als primaire sleutel aan te duiden. U kunt meerdere kolommen gebruiken, gescheiden door komma's, om een ​​primaire sleutel te definiëren.

Tabellen maken vanaf de opdrachtregel:

Het is eenvoudig om een ​​MySQL-tabel te maken via MySQL>prompt. U gebruikt de SQL-opdrachten voor het maken van een tabel om de tabel te maken.

Voorbeeld:

Hier is een voorbeeld dat tutorials_tbl maakt:

Root@host# mysql -u root -p Voer wachtwoord in:******* mysql> gebruik TUTORIALS; Database gewijzigd mysql> CREATE TABLE tutorials_tbl(-> tutorial_id INT NOT NULL AUTO_INCREMENT, -> tutorial_title VARCHAR(100) NOT NULL, -> tutorial_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY (tutorial_id) -> ); Query OK, 0 rijen beïnvloed (0,16 sec) mysql>

Tabellen maken met behulp van een PHP-script:

Om een ​​nieuwe tabel in een bestaande database te maken, moet je de PHP-functies mysql_query() gebruiken. U geeft uw tweede argument door aan de juiste SQL-opdracht om de tabel te maken.

Voorbeeld:

Hier is een voorbeeld van het maken van een tabel met behulp van een PHP-script:

MySQL-tabellen maken "; $sql = "CREATE TABLE tutorials_tbl(". "tutorial_id INT NOT NULL AUTO_INCREMENT, "." "tutorial_title VARCHAR(100) NOT NULL, "." "tutorial_author VARCHAR(40) NOT NULL, "." submission_date DATUM, ". "PRIMARY SLEUTEL (tutorial_id)); "; mysql_select_db("TUTORIALS"); $retval = mysql_query($sql, $conn); if(! $retval) ( die("Kon tabel niet maken: " . mysql_error()); ) echo "Tabel is succesvol aangemaakt" ; mysql_close($conn); ?>

Meer voorbeelden:

MAAK TABEL INDIEN NIET BESTAAT `users` (`id` int(11) NOT NULL auto_increment, `role_id` int(11) NOT NULL standaard "1", `username` varchar(25) verzamel utf8_bin NOT NULL, `password` varchar (34) verzamel utf8_bin NOT NULL, `email` varchar(100) verzamel utf8_bin NOT NULL, `banned` tinyint(1) NOT NULL standaard "0", `ban_reason` varchar(255) verzamel utf8_bin standaard NULL, `newpass` varchar (34) verzamel utf8_bin standaard NULL, `newpass_key` varchar(32) verzamel utf8_bin standaard NULL, `newpass_time` datetime standaard NULL, `last_ip` varchar(40) verzamel utf8_bin NOT NULL, `last_login` datetime NIET NULL standaard "0000-00 -00 00:00:00", `aangemaakt` datumtijd NIET NULL standaard "0000-00-00 00:00:00", `gewijzigde` tijdstempel NIET NULL standaard CURRENT_TIMESTAMP bij update CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE =InnoDB STANDAARD TEKENSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ; //Met twee sleutels: MAAK TABEL INDIEN NIET BESTAAT `ci_sessions` (session_id varchar(40) STANDAARD "0" NIET NULL, ip_address varchar(16) STANDAARD "0" NIET NULL, user_agent varchar(120) NIET NULL, last_activity int( 10) niet-ondertekende DEFAULT 0 NIET NULL, user_data tekst NIET NULL, PRIMARY KEY (session_id), KEY `last_activity_idx` (`last_activity`));

Afzonderlijke artikelen beschrijven andere basisprincipes van het werken met databases en niet alleen MySQL.

Een MySQL-tabel maken via PHP en andere details

Nu zal ik je meer in detail vertellen voor degenen die nieuwsgierig zijn naar waar en wat ze waar moeten plaatsen.

Laten we dus een eenvoudige tabel maken om het materiaal gemakkelijker te begrijpen zonder onnodig fanatisme en slimme woorden. Hieronder staat een script dat eenvoudig kan worden uitgevoerd op het tabblad SQL van het phpmyadmin-configuratiescherm; het enige wat u hoeft te doen is de tekst kopiëren en op de knop Uitvoeren klikken:

CREATE TABLE `base_name`.`table_name` (`id` INT NULL AUTO_INCREMENT COMMENT "Record ID-nummer", `text_` VARCHAR(500) NULL COMMENT "Tekstveld", PRIMARY KEY (`id`)) ENGINE=MYISAM KARAKTERSET utf8 COLLATE utf8_general_ci COMMENT="Experimentele tabel";

In onze database (DB) bevindt zich nu een tabel met de naam `table_name`

Een paar belangrijke opmerkingen.

  • Maak er een gewoonte van om onmiddellijk opmerkingen voor velden in te vullen, hierdoor kun je de gewoonte ontwikkelen om commentaar te geven en vervolgens zullen er geen problemen zijn bij het ontwikkelen van grote en dynamische velden, aangezien ik betwijfel of je 10.000 velden uit je hoofd zult onthouden en wat en waarom ze allemaal voor veld nodig zijn.
  • Vergeet alle eerder bestaande coderingen en werk alleen in UTF. voor anderen duidelijk zijn, lees dan de informatie op de link.
  • Schrijf alle velden alleen in kleine letters of alleen in hoofdletters. Helaas is PHP kieskeurig wat betreft hoofdlettergebruik en als het hoofdlettergebruik verandert, worden veel scripts en velden mogelijk niet voor u weergegeven, of worden ze weergegeven maar niet correct.

Dit is hoe de volledig voltooide HTML-paginacode eruit zal zien:

Record-id=".$row["id"]". Tekst: ".$row["text_"]."

"; )// /terwijl ?>

Probleem met UTF-8-codering

Zoals de statistieken hebben aangetoond, is dit zo'n populair probleem dat ik besloot het in een apart hoofdstuk op te nemen. Maar in werkelijkheid zijn er geen problemen, voeg direct na de procedure voor het verbinden met de database drie hieronder gemarkeerde regels toe, die verantwoordelijk zijn voor het omschakelen van de codering van de uitvoerresultaten, hier is een voorbeeld:

// een verbinding tot stand brengen met de server (@ mogelijke fouten onderdrukken) @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass); // schakel over naar de gewenste database @mysql_select_db($sdd_db_name); // de codering instellen die wordt gebruikt om gegevens van een PHP-script naar MySQL @mysql_query("set character_set_client="utf8""); // instellen van de codering waarmee gegevens worden uitgevoerd vanuit de MySQL-database naar het PHP-script @mysql_query("set character_set_results="utf8""); // instellen van de codering waarmee serviceopdrachten naar de server @mysql_query("set collation_connection="utf8_general_ci"");

Veel mensen gebruiken de regel:

Mysql_query("NAMEN instellen utf8");

Dit werkt, maar deze aanroep wordt verwijderd in toekomstige versies van MySQL. Dit staat vermeld op de MySQL-website, dus het wordt ten zeerste afgeraden om deze vorm van coderingsschakeling te gebruiken.

Als je helemaal gek bent geworden en in de jaren 90 hebt besloten terug te keren naar programmeren en de dode cp1251-codering als je ideaal beschouwt, vervang dan eenvoudigweg UTF door de juiste waarden cp1251 En cp1251_general_ci.

Het is onaangenaam, maar het is een feit dat mensen die betrokken zijn bij programmeren, vooral de laatste tijd, volledig zijn vergeten hoe ze de bijbehorende documentatie moeten lezen, waarin de meeste problemen worden beschreven.

Basisproblemen en trucs voor het werken met tabellen in MySQL via PHP

Hier zijn enkele trucs die beginners ook vaak tegenkomen:

Waarom heb je het @-teken nodig vóór mysql-opdrachten?

Dit teken onderdrukt de uitvoer van informatie over fouten in de motor. Omdat het artikel voor beginners is, zal het niet lang duren voordat je bij het juiste artikel komt, dus om je niet te overladen met een zee aan onnodige informatie en nergens door afgeleid te worden, plaats ik dit bord.

Wat kan moeilijker worden gedaan?

Voor meer complexe is er een hele op deze site, en de belangrijkste en meest voorkomende worden ook beschreven, wat voor het eerste studiejaar voldoende zal zijn voor al je behoeften.

Dank aan diego_lott26 voor het wijzen op de fout in de code.

Van de auteur: Waarom schud je zo met je mobiele telefoon? Er is een brief in uw brievenbus terechtgekomen, maar u kunt deze niet lezen? Het is duidelijk! Je zou ook rondrennen met een tamboerijn in de buurt van je pc om gegevens uit MySQL op te halen. Na de “inbeslagname” van de brief, dit is wat ze gingen doen, en ze pakten zelfs een tamboerijn? Oké, ik zal me er niet mee bemoeien. En voor de rest zal ik je vertellen hoe je gegevens uit MySQL kunt ‘extraheren’ zonder tamboerijn.

phpMyAdmin-uitvoertools

Leg voorlopig de tamboerijn, de ogen van een kruipende python en de ketting van de vliegenzwam opzij. Laten we minder “magische” methoden proberen om informatie uit de database te verkrijgen. Laten we beginnen met te kijken naar de mogelijkheden die de phpMyAdmin-shell hiervoor biedt. We starten het programma, selecteren de gewenste database in de lijst aan de linkerkant. Om gegevens uit een MySQL-tabel weer te geven, gaat u naar het gedeelte “Bladeren” in het hoofdmenu. Hierna krijgen we de inhoud van de geselecteerde tabel.

Hierdoor konden we in drie klikken toegang krijgen tot de inhoud van de benodigde database. Maar op de een of andere manier werd de database die voor experimenten werd gekozen te saai. Natuurlijk houden we allemaal van ‘kleine dieren’, maar voor ons ‘dansen met tamboerijnen’ zullen ze allemaal snel wegrennen. Dit is geen gemakkelijke kwestie van “sjamanisme”

Om u geen zorgen te hoeven maken over het maken van een nieuwe database en geen kostbare tijd te verspillen, downloaden we een kant-en-klare database van de officiële MySQL-bron. En de minuten die we op deze manier besparen, zullen we besteden aan het leren van de “magie” van DBMS-beheer. De gedownloade database wordt in phpMyAdmin geïnstalleerd via het tabblad “Importeren”.

De geïmporteerde World-database bevat veel meer informatie en is daarom interessanter om te leren (voor het geval we ons vervelen tijdens het leren van de stof). Het “potentieel” ervan kan worden gezien door een van de tabellen te openen. Bijvoorbeeld 'Plaats':

Duiken in gestructureerde zoektaal

Dit is allemaal interessant, maar wat als u een MySQL-rij moet weergeven en niet de hele tabel? Het is bijna onmogelijk om visueel te vinden wat u zoekt tussen honderden regels. Om dit te doen, moet u SQL-tools gebruiken.

Structured Query Language gebruikt de SELECT-instructie om gesorteerde gegevens weer te geven. De syntaxis is:

Hier is een voorbeeld van een SQL-query voor de tabel “stad”. We moeten bijvoorbeeld een rij uitvoeren waarin de waarde van de id-kolom 670 is:

We starten een uitvoerverzoek vanuit een MySQL-database door de opdracht (SELECT) op te geven. Vervolgens “vertellen” we het DBMS met een asterisk (*) dat we alle rijwaarden uit (FROM) de stadstabel willen selecteren, waarbij de waarde van de id-kolom gelijk is aan de opgegeven waarde (id = 670). Voer de query in het editorvenster in ("SQL" tabblad). Dit is het resultaat dat de server naar ons terugstuurt:

De server heeft ons een string teruggestuurd die voldeed aan de criteria die in het verzoek waren opgegeven. Hierboven toont het systeem de aanvraagcode en voegt er automatisch een deel van toe. Met behulp van de ORDER BY-richtlijn sorteert het programma (NIET het DBMS) de voorbeeldresultaten standaard op de waarde van de kolom Naam (stad . Naam). In dit geval worden de kolomwaarden in oplopende volgorde gesorteerd (ASC-parameter).

Besteed aandacht aan de “subtiliteiten” van de syntaxis (schrijven) van queries om MySQL-tabellen weer te geven. Tabelnamen worden niet geëscaped met enkele aanhalingstekens, maar met een graf. Het is een zwak accentteken. Op het toetsenbord bevindt het zich op de toets met de letter “Ё”.

Dit is belangrijk omdat als u enkele aanhalingstekens gebruikt, MySQL een syntaxisfout genereert.
een verzoekopdracht schrijven. Voor de duidelijkheid: probeer het zelf. Als gevolg hiervan ziet u het volgende resultaat:

Gegevens ophalen uit PHP-code

Nu zullen we proberen gegevens van MySQL naar PHP uit te voeren. Laten we dezelfde string op het scherm weergeven die we in het vorige verzoek hebben ontvangen. Hier is de voorbeeldcode:

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

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

echo "Hallo!!!" ;

mysql_select_db ("db1" , $con_str );

while ($row = mysql_fetch_array ($resultaat) ) (

$id = $rij [ "ID" ] ;

$naam = $rij [ "Naam" ] ;

$country_code = $row [ "Landcode" ] ;

$district = $rij [ "District" ] ;

$populatie = $row [ "Populatie" ] ;

echo "

$id - $naam - $landcode - $district - $populatie

" ;

mysql_close();

Als resultaat van het verwijderen van MySQL ontvingen we dezelfde regel:

Maar wat als u de hele tabel wilt weergeven? Om dit te doen, moet u de SQL-querycode enigszins wijzigen:

SELECTEER * UIT `wereld`.`stad`

SELECTEER * UIT `wereld`. `stad`

Dit is wat we in de browser weergeven:

Dat wil zeggen dat we alle gegevens in de tabel als geheel hebben weergegeven. Maar ze zijn te omvangrijk en passen mogelijk niet in het browserscherm. Met behulp van de LIMIT-operator in een query kunt u opgeven welke rijen moeten worden weergegeven (van welke tot welke). We moeten bijvoorbeeld naar gegevens uit rij 1 tot en met 10 kijken. Dan ziet het verzoek om de pagina uit MySQL weer te geven er als volgt uit.

Open de databank. Om een ​​tabel te maken, hebt u een database nodig die deze bevat. U kunt de database openen door te typen GEBRUIK databank op de MySQL-opdrachtregel.

  • Als u de databasenaam niet meer weet, typt u TOON DATABASES om de databases op de MySQL-server weer te geven.
  • Als u nog geen database heeft, kunt u er een maken door te typen DATABANK MAKEN. De databasenaam mag geen spaties bevatten.

Leer basisgegevenstypen. Elke record in een tabel wordt opgeslagen als een specifiek gegevenstype. Hierdoor kan MySQL op verschillende manieren met hen communiceren. De soorten gegevens die u gaat gebruiken, zijn afhankelijk van het doel van uw tabel. Er zijn nog veel meer typen dan de volgende, maar u kunt ze gebruiken om een ​​eenvoudige, bruikbare tabel te maken:

Maak een tabel. Om een ​​tabel vanaf de opdrachtregel te maken, moet u alle velden met één opdracht maken. U maakt tabellen met behulp van de opdracht MAAK TABEL gevolgd door informatie over de tafel. Om een ​​basispersoneelsrecord aan te maken, moet u de volgende opdracht invoeren:

CREATE TABLE werknemers (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , achternaam VARCHAR (20 ), voornaam VARCHAR (20 ), telefoon VARCHAR (20 ), geboortedatum DATE )

  • INT NOT NULL PRIMARY KEY AUTO_INCREMENT creëert een numerieke ID voor elke werknemer die aan de record wordt toegevoegd. Dit aantal wordt elke keer automatisch verhoogd. Hierdoor kunt u eenvoudig via andere functies naar medewerkers verwijzen.
  • Hoewel VARCHAR toestaat dat de grootte kleiner wordt op basis van de ingevoerde gegevens, kunt u er een maximum voor instellen om te voorkomen dat de gebruiker te lange tekenreeksen invoert. In het bovenstaande voorbeeld zijn de voor- en achternaam beperkt tot 20 tekens.
  • Houd er rekening mee dat het telefoonnummerrecord wordt opgeslagen als een VARCHAR, zodat de tekens ook correct worden verwerkt.
  • Controleer of uw tabel correct is gemaakt. Nadat u de tabel heeft gemaakt, ontvangt u een bericht dat deze met succes is gemaakt. Nu kunt u de opdracht gebruiken BESCHRIJVEN om er zeker van te zijn dat u alle gewenste velden heeft opgenomen en dat ze de juiste gegevenstypen hebben. Wijzerplaat DESCRIBE-database; en kijk naar de grafiek die verschijnt om de structuur van uw tabel te controleren.

    Maak een tabel met behulp van PHP. Als u PHP gebruikt om uw MySQL-database via een webserver te beheren, kunt u een tabel maken met behulp van een eenvoudig PHP-bestand. Er wordt aangenomen dat de database al op de MySQL-server bestaat. Om dezelfde tabel te maken als in stap 3, voert u de volgende code in, waarbij u de verbindingsinformatie vervangt door wat voor u relevant is:

    "Kan geen verbinding maken met MySQL: ". mysqli_connect_error(); ) $sql = "CREATE TABLE medewerkers (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, achternaam VARCHAR(20), voornaam VARCHAR(20), telefoon VARCHAR(20), geboortedatum DATE)"; if (mysqli_query ($connection, $sql)) ( echo "Tafelmedewerkers succesvol aangemaakt"; ) else ( echo "Fout bij maken tabel: " . mysqli_error ($connection ) ; ) ?>