MySQL - brauche Informationen!

  • Hallo

    Ich hab mal ein paar Fragen ...

    Ich würde gerne lernen ein wenig mit MySQL umzugehen aber so richtig damit beschäftigt hab ich mich noch nie. Hab aber öfters gelesen dass man die Datenbanken manuell auf PhpMyAdmin erstellen muss. Ist das Fakt oder kann man die auch via PHP erstellen und steuern?

    Und verbinden tut man sich ja bspw. so:

    Code
    mysql_connect('localhost', 'mysql_user', 'mysql_password');

    Quelltext

    Was ich nun nicht verstehe ist, inwiefern die drei Begriffe gemeint sind. Was ist z.B. mit localhost gemeint und welche "user" und passwort sind damit gefragt?

    Ich hab insgesammt 3 MySQL-Datenbanken. Eins davon ist bereits besetzt. Ist ein Dankenbank durch Speicherkapazität begrenzt? Wenn ja, was bzw. wie viel kann man sich unter zwei Dankenbanken vorstellen? Oder ist es einfach so, dass jedes PHP-Script dass MySQL beinhaltet, eine eigene Datenbank benötigt? Mit anderen Worten: Wenn ich 2 verschiedenen PHP-Scripts im Bezug auf MySQL habe, hab ich dann meine beiden Dankenbanken aufgebraucht?!

  • na um auf eine DB connecten zu können braucht man halt eine IP, einen benutzernamen und ein passwort..
    wäre ja zu schön für nen hacker und jeden der schindluderei treiben will, wenn der auf die dastenbanken von jedem x-beliebigen server draufgehen könnte und dort rumwuseln könnte oder gar die daten löschen usw..
    localhost ist sozusagen ein alias für die 127.0.0.1- deinem PC den wirst du über diese IP oder eben über localhost immer erreichen, auch wenn du nicht im internet bist.
    mysql_user ist der benutzername des benutzers, der eine entsprechende datenbank benutzen und einen/mehrere tables(die tabellen mit den daten) ändern und einsehen darf.
    mysql_password ist das passwort, mit dem sich der mysql_user an der datenbank anmelden muss, um entsprechend eingeloggt zu sein und seine veränderungen durchführen zu dürfen.

  • Und mit einer Datenbank kommst du völlig aus. Eine Datenbank ist für alle Scripte auf dem Server verfügbar.

    Und du kannst die komplette Datenbank auch per PHP steuern, nichts anderes macht phpMyAdmin, nur mit einer übersichtlichen Benutzeroberfläche.

    Also ich habe glaube ich meine ersten Datenbankabfragen von schattenbaum.net abgeschaut, die fand ich ganz hilfreich.

    http://schattenbaum.net/php/mstart.php

    Hinweis: Google mal nach Postgres und behalt diese Datenbank im Hinterkopf, für den Anfang ist MySql aber schon gut.

  • Zitat von FaFoo

    Und mit einer Datenbank kommst du völlig aus.


    Jein, je nachdem wieviele projekte man hat, sind mehrere datenbanken vorteilhaft

    Zitat von FaFoo


    nichts anderes macht phpMyAdmin, nur mit einer übersichtlichen Benutzeroberfläche.


    Was ist an phpMyAdmin übersichtlich??

    Zitat von FaFoo

    für den Anfang ist MySql aber schon gut.


    Wieso nur für den anfang?

    17. Datenbanken: MySQL
    http://www.php-faq.de/ch/ch-database_mysql.html

    http://de.php.net/manual/de/book.mysql.php

    http://dev.mysql.com/doc/refman/5.1/de/index.html

  • Ich weiss nicht ob ich auf dem richtigen Weg bin aber bei mir siehts zurzeit so aus:

    Das mit dem Verbinden klappt gut aber ich weiss nicht ob mein Eintrag gespeichert wurde. Den wert kann ich auch nicht auslesen. Bekomme dabei folgende Meldung: "No database selected" ... hab auch das "Name" mit "text" ersetzt aber denke nicht dass es daran liegt. :?

  • müsste es dann nicht
    SELECT text FROM links
    heissen?

    du musst ja bei FROM die tabelle angeben aus der du das feld auslesen möchtest.

    ps: kann mich auch irren, mysql ist länger her.... müsste ich mal wieder was machen...

  • Gut dann liegt der Fehler wohl bei der Erstellung der Tabelle. Bekomme nämlich das hier: Table 'rezacotest.text' doesn't exist

  • gibt evtl fehler, da text auch ein mysql-befehl ist, ich würde dir dazu raten, die tabelle anders zu benennen
    probier mal:

    $result = mysql_query("SELECT `Name` FROM `text`") OR die(mysql_error());

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Hab es mich mal damit beschäftigt.
    Und soweit müsste dies eigentlich funktionieren.

    PHP
    <?php
    $link = mysql_connect('127.0.0.1', 'rezacouser', 'pw');
    if (!$link) {
        die('Keine Verbindung möglich: ' . mysql_error());
    }
    db_query("INSERT INTO `links` (`text`) VALUES (Text)");
    $result = mysql_query("SELECT Name FROM text") OR die(mysql_error()); 
    echo 'Ergebnis: '.$result;
    mysql_close($link);
    ?>
  • Sorry. :oops: Hatte dies ganz vergessen. Hoffe es ist jetzt alles richtig.

  • Ich hab "Datenbank" jetzt einfach mit dem Datenbank-Namen ersetzt. Bekomme dann aber ne Fehlermeldung:

    Zitat

    Fatal error: Call to undefined function db_query() in /www/htdocs/rezaco/test.php on line 10

  • dann ersetze das doch einfach.
    Allerdings funktioniert das bei mir.
    Da mysql_query ja einen befehl an den MySql Server abgibt.
    db_query an die Datenbank die selektiert wurde.

  • Zitat


    Da mysql_query ja einen befehl an den MySql Server abgibt.
    db_query an die Datenbank die selektiert wurde.

    Ein Mysql-Neuling fragt hier Grundlagen ab, und du kommst ihm mit Funktionen, die es nur in anderen SQL-Klassen gibt. Du überforderst ihn doch nur für den Anfang.
    Ich weiß zwar nicht, aus welcher Klasse du den db_query Befehl nun hast, aber an sich macht diese Funktion klassischerweise nichts anderes als mysql_query().
    Von daher ist deine Aussage oben auch falsch!

    Gruß,
    Jojo


  • Zitat

    2. db_query benutz ich bei Ilch. Und es funktioniert vollkommen mit MySql 4 und 5

    Du checkst es nicht, oder?
    Ilch hat eine eigene klasse für Datenbank-Aktionen. Die gibt es in php standardmäßig NICHT.
    Von daher kann man nichts damit anfangen, wenn man nicht auch ilch nutzt.