Search code examples
phpmysqliprepare

prepared selection shows blank page


I just set up the prepared query selection but it seems like it does not work.. It shows blank page instead of the content it should show..where is problem?

<?php 

        $servername = "";
        $username = "";
        $password = "";
        $dbname = "";

        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
}

        $stmt = $mysqli->prepare('SELECT configured FROM members WHERE username = ?');
        $stmt->bind_param('s', $username);

        $stmt->execute();
        $stmt->bind_result($username);

        while ($stmt->fetch()) {

                                if($row['configured'] == ""){
        if (isset($_SESSION['user_id'])) {  


?>

With this code I want to check if user has configured his settings and so if yes, then if he is logged in. But the page shows nothing even though I have there everything correct after that code I posted...


Solution

  • You're using $conn to connect with, then $mysqli in your prepare statement.

    This

    $stmt = $mysqli->prepare
    

    Which should read as

    $stmt = $conn->prepare
    

    Also make sure you've started the session.

    Check for errors:

    and you have 3 missing closing braces in your posted code.

    • I see you're using $username = ""; in your DB connection and then using the same variable to bind with.

    Add error reporting to the top of your file(s) which will help find errors.

    <?php 
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // rest of your code
    

    Sidenote: Error reporting should only be done in staging, and never production.