怎么了?无法连接到本地主机的MYSQL数据库

时间:2018-09-12 17:56:13

标签: php html mysql phpmyadmin mariadb

对此表示抱歉。但是我坐在这里待了几个小时,才能发现错误。

我在macOS上使用Mamp,没有其他Web服务器或mariadb服务器在运行。 PHP很好(版本7.2.8)。 MySQL端口:8889。Apache端口:8888。

因此,我试图建立一个简单的PHP注册表格,但实际上无法访问我的数据库。用户,密码,主机和数据库都可以,但是我真的找不到我的错误。请给我一个提示或解决方案。 :)两个头比一个头好。

所以这是代码(它主要是德语,但它不会阻止您。) 非常感谢!

更新

MySQL日志:justpaste.it PHP日志:justpaste.it

<?php 

        $user = 'bwdb';
        $password = 'some password';
        $db = 'bwdb';
        $host = 'localhost';
        $port = 8889;


        $conn = new mysqli($host, $user, $password, $db);

        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
    ?>
    <!DOCTYPE html> 
    <html> 
    <head>
      <title>Registrierung</title>    
    </head> 
    <body>

    <?php
    session_start();
    $showFormular = true; 

    if(isset($_GET['register'])) {
        $error = false;
        $email = $_POST['email'];
        $passwort = $_POST['passwort'];
        $passwort2 = $_POST['passwort2'];

        if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            echo 'Bitte eine gültige E-Mail-Adresse eingeben<br>';
            $error = true;
        }     
        if(strlen($passwort) == 0) {
            echo 'Bitte ein Passwort angeben<br>';
            $error = true;
        }
        if($passwort != $passwort2) {
            echo 'Die Passwörter müssen übereinstimmen<br>';
            $error = true;
        }

        if(!$error) { 
            $statement = $conn->prepare("SELECT * FROM users WHERE email = :email");
            $result = $statement->execute(array('email' => $email));
            $user = $statement->fetch();

            if($user !== false) {
                echo 'Diese E-Mail-Adresse ist bereits vergeben<br>';
                $error = true;
            }    
        }

        if(!$error) {    
            $passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);

            $statement = $conn->prepare("INSERT INTO users (email, passwort) VALUES (:email, :passwort)");
            $result = $statement->execute(array('email' => $email, 'passwort' => $passwort_hash));

            if($result) {        
                echo 'Du wurdest erfolgreich registriert. <a href="login.php">Zum Login</a>';
                $showFormular = false;
            } else {
                echo 'Beim Abspeichern ist leider ein Fehler aufgetreten<br>';
            }
        } 
    }

    if($showFormular) {
    ?>

    <form action="" method="post">
    E-Mail:<br>
    <input type="email" size="40" maxlength="250" name="email"><br><br>

    Dein Passwort:<br>
    <input type="password" size="40"  maxlength="250" name="passwort"><br>

    Passwort wiederholen:<br>
    <input type="password" size="40" maxlength="250" name="passwort2"><br><br>

    <input type="submit" value="Send">
    </form>

    <?php
    }
    ?>

    </body>
    </html>

0 个答案:

没有答案