怎么了?无法连接到localhost的mysql数据库

q3qa4bjr  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(212)

这个问题在这里已经有答案了

我可以在php中混合mysql api吗(4个答案)
引用-这个错误在php中是什么意思(36个答案)
两年前关门了。
很抱歉。但我在这里坐了几个小时,想找出错误。
我在macos上使用mamp,没有其他web服务器或mariadb服务器在运行。php很好(7.2.8版)。mysql端口:8889。apache端口:8888。
所以我试着设置一个简单的php注册表,但是我不能真正访问我的数据库。user、passwort、host和db都很好,但我真的找不到我的错误。请给我一个提示或解决办法两个头总比一个头好。。。
所以这里是代码(主要是德语,但它不应该阻止你。)太多了!
更新
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>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题