#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2012
    Posts
    16
    Rep Power
    0

    Why fetch_assoc() or fetch_row() giving error always


    Hi Every Body
    I am facing problem in retreving the data from my mysql table I want to use prepared statement with mysqli for security reason. Here is my code Please give a guidance -
    PHP Code:
    <?php
    $host
    ="localhost"// Host name 
    $username="**********"// Mysql username 
    $password="**********"// Mysql password 
    $db_name="**********"// Database name 
    $tbl_name1="**********"// tem Table name 
    $tbl_name2="**********"// registered user table

    $mysqli = new mysqli($localhost$username$password$db_name);
    if (
    $mysqli->connect_errno)
    {
        echo 
    "Connection Failed: " mysqli_connect_errno();
        exit();
    }
    $count=null;
    $passkey=$_GET['passkey'];

    echo 
    $passkey;  // exact passkey printed
    if($stmt $mysqli -> prepare("SELECT * FROM $tbl_name1 WHERE confirm_code=?"))
    {
        
    $stmt -> bind_param("s"$passkey);
        
    $stmt -> execute();
        
    $stmt->store_result();
        
    $count=$stmt->num_rows;
        echo 
    "\n".$count;   // getting the value 1 which is correct
        
    if($count==1)
        {
        while(
    $rows $stmt->fetch_assoc())
        {
             
    $v_fname=$rows['temp_first_name'];
             
    $v_lname=$rows['temp_last_name'];
             
    $v_sex=$rows['temp_sex'];
             
    $v_phone=$rows['temp_phone'];
             
    $v_city=$rows['temp_state'];
             
    $v_state=$rows['temp_city'];
             
    $v_pin=$rows['temp_pin'];
             
    $v_schoolname=$rows['temp_school_name'];
             
    $v_class=$rows['temp_class'];
             
    $v_subject=$rows['temp_computer_subject'];
             
    $v_board=$rows['temp_board'];
             
    $v_session=$rows['temp_session'];
             
    $v_email=$rows['temp_email'];
             
    $password=$rows['temp_password'];
             
    $v_salt=$rows['temp_salt'];

        if (!(
    $insert_stmt $mysqli->prepare("INSERT INTO $tbl_name2    (first_name,last_name,sex,phone,state,city,pin,school_name,class,computer_subject,board,     session,email,password,salt) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")))
        {
            echo 
    "Prepare failed: (" $mysqli->errno ") " $mysqli->error;
        }
        if(!
    $insert_stmt->bind_param('sssiiisssssssss',$v_fname,$v_lname,$v_sex,$v_phone,$v_city,$v_state,$v_pin,    $v_schoolname,$v_class,$v_subject,$v_board,$v_session,$v_email$password,$v_salt))
        {
            echo 
    "Binding parameters failed: (" $stmt->errno ") " $stmt->error;
        }
        if(!
    $insert_stmt->execute())
        {
            echo 
    "Execute failed: (" $mysqli->errno ") " $mysqli->error;
        }
        else
        {
            
    //echo "Data saved properly";
            
    $flag=1;
            if(
    $flag==1)
            {
                echo 
    "<body bgcolor='#FFFF99'>";
                echo 
    "<p align='center'><font color='#008000' size='6' face='Verdana'>";
                echo 
    "Congratulation...!! </font>";
                echo 
    "</br>";
                echo 
    "<font color='e80005' size='5'>Your account has been activated</font>";

                if (
    $stmt $mysqli->prepare("DELETE FROM $tbl_name1 WHERE confirm_code = ? LIMIT 1")) 
                        { 
                                
    $stmt->bind_param("s",$passkey);      
                                
    $stmt->execute();      
                        }
            }
        }
          }
       }
    }
    else
    {
        echo 
    "Select Failed: (" $mysqli->errno ") " $mysqli->error;
        echo 
    "<body bgcolor='#FFFF99'>";
        echo 
    "<p align='center'><font color='#e80005' size='6' face='Verdana'>";
        echo 
    "SORRY...! </font>";
        echo 
    "</br>";
        echo 
    "<font color='#e80005' size='5'>Your Confirmation code is not correct</font>";
    }


      
    $stmt->close(); 
    ?>
    Sorry I forgot to add the error, here is the error -
    Fatal error: Call to undefined method mysqli_stmt::fetch_assoc() in /home/cbsecpsn/public_html/confirmation.php on line 38
  2. #2
  3. No Profile Picture
    Lost in code
    Devshed Supreme Being (6500+ posts)

    Join Date
    Dec 2004
    Posts
    8,300
    Rep Power
    7170
    fetch_assoc is a method of the mysqli_result class, not the mysqli_stmt class. The get_result method of the mysqli_stmt class will return a mysqli_result object.
    PHP FAQ

    Originally Posted by Spad
    Ah USB, the only rectangular connector where you have to make 3 attempts before you get it the right way around
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2012
    Posts
    16
    Rep Power
    0

    Thank you E-Oreo


    Originally Posted by E-Oreo
    fetch_assoc is a method of the mysqli_result class, not the mysqli_stmt class. The get_result method of the mysqli_stmt class will return a mysqli_result object.
    Thanx for guidence but I'm confused now how to fetch the value from array here I am modifying my code -

    if($stmt = $mysqli -> prepare("SELECT * FROM $tbl_name1 WHERE confirm_code=?"))
    {
    $stmt -> bind_param("s", $passkey);
    $stmt -> execute();
    $stmt->store_result();

    $count=$stmt->num_rows;
    echo "\n".$count; // getting the value 1 which is correct
    if($count==1)
    {
    $rows = $stmt->get_result();
    $res=$rows->num_rows;
    $rows->data_seek($res);

    // I am not getting link from here HOW CAN I get the value $rows->fetch_assoc());

    $v_fname=$rows['temp_first_name'];
    $v_lname=$rows['temp_last_name'];
    $v_sex=$rows['temp_sex'];
    $v_phone=$rows['temp_phone'];
  6. #4
  7. No Profile Picture
    Lost in code
    Devshed Supreme Being (6500+ posts)

    Join Date
    Dec 2004
    Posts
    8,300
    Rep Power
    7170
    Remove:
    PHP Code:
     $res=$rows->num_rows;
    $rows->data_seek($res); 
    If you seek to the end of the result set your call to fetch_assoc isn't going to return anything because it is already at the end.
    PHP FAQ

    Originally Posted by Spad
    Ah USB, the only rectangular connector where you have to make 3 attempts before you get it the right way around
  8. #5
  9. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2012
    Posts
    16
    Rep Power
    0
    Originally Posted by E-Oreo
    Remove:
    PHP Code:
     $res=$rows->num_rows;
    $rows->data_seek($res); 
    If you seek to the end of the result set your call to fetch_assoc isn't going to return anything because it is already at the end.
    Do you mean to say THIS WAY I SHOULD MOVE

    PHP Code:
    $rows $stmt->get_result();
     
    $rows->fetch_assoc();   

    $v_fname=$rows['temp_first_name'];
    $v_lname=$rows['temp_last_name'];
    $v_sex=$rows['temp_sex'];
    $v_phone=$rows['temp_phone']; 

IMN logo majestic logo threadwatch logo seochat tools logo