• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbank per Formular erstellen

t-stephan

Neues Mitglied
Hi,
ich bin gerade etwas am rumprobieren und wollte gerne eine Datenbank ( Datenbanknamen ) per Formular erstellen.
BITTE, ich habe nur Mysql über ein PHP-Buch erklärt bekommen, deshalb bitte nicht so streng

Wie ich es mir dachte:
ich erstellte eine neue Funktion, die als Parameter $nameOfDatabase hat. $nameOfDatabase soll später mit den Eingabefeld verknüpft werden.
Hier die Syntax:
PHP:
<?php
    function newDatabase($nameOfDatabase) {
        $db=mysql_connect("localhost","root","");
        $anfrage=mysql_create_db($nameOfDatabase);
        mysql_query($anfrage);
        mysql_close($db);  
    }
?>

Nun beginnt der Teil mit HTML. Hier erstellte ich ein normales Formular etc...
HTML:
<html>
<head>
<title>Datenbanken</title>
<link rel="stylesheet" href="bootstrap.css" type="text/css" />
<link rel="stylesheet" href="bootstrap-responsive.css" type="text/css" />
<link rel="stylesheet" href="custom.css" type="text/css" />

</head>
<body>
    <div class="navbar navbar-inverse">
        <div class="navbar">
            <div class="navbar-inner">
                <a class="brand" href="menu.php">PHP-Testcenter</a>
                <ul class="nav">
                <li><a href="test.php">Arrays</a></li>
                   <li><a href="database.php">Datenbanken</a></li>
                </ul>
            </div>
        </div>
       </div>
       
    <div class="container-fluid">
        <div class="hero-unit"><h1> Alles mit Datenbanken in PHP</h1></div>
            <form class="form-inline" name="arrayNew" method="post">
                <input type="text" name="nameOfDatabase" placeholder="Eingabe des Namens">
                <br>
                <br>
                <button class="btn btn-success" type="submit">Enter</button>
            </form>

So nun kommt wieder ein PHP-Tag und dort wird die Funktion aufgerufen.
PHP:
<?php
        $x = newDatabase( $_POST['databaseName']);
            echo $x;
        ?>

HTML wird noch geschlossen

HTML:
</body>
</html>

kompletter Code:
PHP:
<?php
    function newDatabase($nameOfDatabase) {
        $db=mysql_connect("localhost","root","");
        $anfrage=mysql_create_db($nameOfDatabase);
        mysql_query($anfrage);
        mysql_close($db);
        
        echo $anfrage;    
    }
?>
<html>
<head>
<title>Datenbanken</title>
<link rel="stylesheet" href="bootstrap.css" type="text/css" />
<link rel="stylesheet" href="bootstrap-responsive.css" type="text/css" />
<link rel="stylesheet" href="custom.css" type="text/css" />

</head>
<body>
    <div class="navbar navbar-inverse">
        <div class="navbar">
            <div class="navbar-inner">
                <a class="brand" href="menu.php">PHP-Testcenter</a>
                <ul class="nav">
                <li><a href="test.php">Arrays</a></li>
                   <li><a href="database.php">Datenbanken</a></li>
                </ul>
            </div>
        </div>
       </div>
       
    <div class="container-fluid">
        <div class="hero-unit"><h1> Alles mit Datenbanken in PHP</h1></div>
            <form class="form-inline" name="arrayNew" method="post">
                <input type="text" name="databaseName" placeholder="Eingabe des Namens">
                <br>
                <br>
                <button class="btn btn-success" type="submit">Enter</button>
            </form>
        <?php
        $x = newDatabase( $_POST['databaseName']);
            echo $x;
        ?>
</body>
</html>


Meine Fragen an euch ist, kann es überhaupt funktionieren? Er gibt eine Fehlermeldung aus, die von Bedeutung ist

Fatal error: Call to undefined function mysql_create_db() in C:\xampp\htdocs\database.php on line 4

Dort sagt er mir , das mysql_create_db unklar ist , aber ich habe iwie ein Denkfehler drinne und weiß nicht warum...
Ich schätze, weil sie oben noch nicht bekannt ist und erst im unteren Bereich initialisiert wird

ts
 
Werbung:
mysql_create_db gibt es schon, allerdings nur, wenn die MySQL-Extension aktiviert ist. Ich bin mir nicht sicher, ob bei der neuen XAMPP-Version diese Extension überhaupt noch mitgeliefert wird und nur noch MySQLi unterstützt wird.
 
This function will not be available if the MySQL extension was built against a MySQL 4.x client library.
Quelle: PHP: mysql_create_db - Manual

Kann also sein, dass diese Funktion nicht zur Verfügung steht. Aber hier ist der Ausweg: Datenbank anlegen - PHP-Kurs.com - PHP programmieren lernen

Allerdings ist der Aufbau der Seite total falsch. IN Deinem Fall wird die Funktion zum Erstellen der Datenbank immer aufgerufen, auch schon beim Anzeigen des Formulars. Schau mal hier: Guter Code - Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
 
Werbung:
Ja, ich habe es auch gerade gemerkt... war ein Denkfehler von mir und werde die Seite nacher auf zwei Seiten auslagern...
Eine HTML mit den Formular und eine PHP, wo er die DB erstellt
 
ok, ich studiere kurz die syntax...sie ist etwas "anders" :D

ich kapier denn aber iwie nicht oO

<form action="<?php echo $_SERVER['PHP_SELF']; ?>">
wo ist im code PHP_SELF?
 
Werbung:
Leute schreiben halt das mysql_create_db($nameOfDatabase); unpassend ist und nicht häufig genutzt wird, sondern eher $anfrage="CREATE DATABASE $nameOfDatabase";
jetzt habe ich eine frage, wie kann ich bei $anfrage="CREATE DATABASE $nameOfDatabase"; sagen, dass $nameOfDatabase eine Variable ist und nicht der Name?
 
Werbung:
Abgesehen davon wäre das hier sauberer:

PHP:
$anfrage="CREATE DATABASE `".mysql_real_escape_string($nameOfDatabase)."`";

Und weiterhin müsste man sicherstellen, das in $nameOfDatabase keine Zeichen vorkommen die nicht in Datenbanknamen zulässig sind. Das wäre z.B. ' oder ", auch ein Leerzeichen könnte problematisch sein.
 
Es wäre besimmt keine schlechte Idee, wenn du nochmals den aktuellen Quellcode inkl. Formular posten würdest.
 
Werbung:
Zurück
Oben