www.webdeveloper.com
Results 1 to 3 of 3

Thread: Convert to Mysqli

  1. #1
    Join Date
    Oct 2013
    Posts
    26

    Convert to Mysqli

    i am working on a social networking project and i have built the skeleton of my site using mysql functions but i read all over the place online that i should instead be using mysqli or PDO, the problem is i have been looking for a while and i cant find a decent mysqli resource. i can convert the server login page over to work with mysqli and i have tested the connection and it works with this statement
    PHP Code:
    $db = new mysqli($dbhost$dbuser$dbpass$dbname);
    if (
    mysqli_connect_errno()) {
        
    printf("Can't connect to MySQL Server. Errorcode: %s\n"mysqli_connect_error());
        exit;
    }
    $sql="SELECT * FROM members";

    if (
    $result=mysqli_query($db,$sql)) {
        
    // Return the number of rows in result set
        
    $rowcount=mysqli_num_rows($result);
        
    printf("Result set has %d rows.\n",$rowcount);
        
    // Free result set
        
    mysqli_free_result($result);

    it returns it correctly without issue but those same function in the code below are giving me trouble.
    PHP Code:
    require_once 'header.php';
    echo 
    "<div class='main'><h3>Please enter your details to log in</h3>";
    $error $user $pass "";

    if (isset(
    $_POST['user'])) {
        
    $user sanitizeString($_POST['user']);
        
    $pass sanitizeString($_POST['pass']);

        if (
    $user == "" || $pass == "") {
            
    $error "Not all fields were entered<br />";
        } else {
            
    $query "SELECT user,pass FROM members
                    WHERE user='
    $user' AND pass='$pass'";

            if (
    mysqli_num_rows(mysqli_query($db$query))  == 0) {
                
    $error "<span class='error'>Username/Password invalid</span><br /><br />";
            } else {
                
    $_SESSION['user'] = $user;
                
    $_SESSION['pass'] = $pass;
                die(
    "You are now logged in. Please <a href='members.php?view=$user'>" .
                
    "click here</a> to continue. <br /><br />");
            
            }
        }
    }

    echo <<<_END
    <form method='post' action='login.php'>$error
    <span class='fieldname'>Username</span><input type='text' maxlength='16' name='user' value='
    $user' /> <br />
    <span class='fieldname'>Password</span><input type='password' maxlength='16' name='pass' value='
    $pass' />
    _END; 

  2. #2
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,176
    While I realize it's "cool" to combine statements on one line, it makes debugging more difficult. I'd suggest something more like this:
    PHP Code:
            $query "SELECT user,pass FROM members
                    WHERE user='
    $user' AND pass='$pass'";
            
    $result mysqli_query($db$query);
            if(
    $result == false) {
                throw new 
    Exception($db->error.PHP_EOL.$query);
            }
            if(
    mysqli_num_rows($result)  == 0) {
                
    $error "<span class='error'>Username/Password invalid</span><br /><br />";
            } 
    That way hopefully you'll find out what's wrong if it's the query that is failing to process for some reason.
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  3. #3
    Join Date
    Oct 2013
    Posts
    26
    Very helpful thank you.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles