doubledee — 2012-11-24T19:54:45-05:00 — #1
I have a question about error-handling and my WHILE loop.
First, here is the code for my query...
$q8 = "SELECT COALESCE(m.username,'Non-Member') AS username
FROM visitor_log AS v
LEFT OUTER JOIN member AS m
ON m.id = v.visitor_id
ORDER BY v.created_on DESC
// Prepare statement.
$stmt8 = mysqli_prepare($dbc, $q8);
// Bind variable to query.
mysqli_stmt_bind_param($stmt8, 'i', $memberID);
// Execute query.
// Store results.
// Check # of Records Returned.
// Visitors Found.
// Bind result-set to variables.
// Fetch below in loop...
// Visitors Not Found.
// Do Nothing...
And then here is the loop I am concerned about...
// Loop through Friends.
//Some code here...
I am worried that if my query (i.e. mysqli_stmt_fetch($stmt8))) returns "0" or "NULL" that my loop could go crazy?!
For a preliminary test, I changed my query to LIMIT 0, and my loop seemed to be okay, but I still feel like something is missing... :-/
guido2004 — 2012-11-25T02:23:40-05:00 — #2
TRUE Success. Data has been fetched
FALSE Error occurred
NULL No more rows/data exists or data truncation occurred
That NULL isn't the value of the column of your query, it's the value the function returns and depends only on the exit of the fetch. If it fetches a row with a column value of NULL, it will return TRUE. It's $visitorUsername that will contain the column value NULL.
doubledee — 2012-11-25T12:33:25-05:00 — #3
I saw that, but isn't the question really about my WHILE??
(From what the Manual says, if the expression inside a WHILE is not TRUE, then the loop doesn't run.
So that would imply that if mysqli_stmt_fetch($stmt8) returned a FALSE or NULL, then my loop simply wouldn't run.
guido2004 — 2012-11-25T15:23:47-05:00 — #4