views:

30

answers:

1

I have a problem where my prepared statement appears to only be returning the number of rows returned rather than the value of the row. Below is my code. I did try google for this but it doesn't tell me anything! If someone could tell me what I am doing wrong and how to fix it I would be very appreciative. Thanks

$query2 = 'SELECT * FROM kids_entry WHERE email = ?';
$stmt2 = $connection->prepare($query2);

// bind the user id as an integer to the first ?
$stmt2->bind_param('s', $email);
$stmt2->execute(); // execute the statement

$stmt2->store_result(); // this call is required for the next operation 

while($row1 = $stmt2->fetch()){
 printf ("%s \n", $entries);
}

EDIT

I did just try replacing the if with a while loop and i got the same thing.

EDIT 2

Having added the new code it works but how would i assign this to a $variable?

A: 

See the example in the php documentation: mysqli_stmt_fetch

/* execute statement */
$stmt->execute();

/* bind result variables */
$stmt->bind_result($name, $code);

/* fetch values */
while ($stmt->fetch()) {
    printf ("%s (%s)\n", $name, $code);
}

/* close statement */
$stmt->close();
Priyank Bolia
thanks. any idea on how to assign it to a variable?
Drew
what you mean by assign to variable, just declare variables, then bind to the result set using bind_result and call fetch, the variables contain the values of the row. You should go through the documentation first.
Priyank Bolia