PHP function to retrieve mysql table column not working
I have this PHP function that I want to use to retrieve a column, "username", from a table called "members". I have used the below function before, and had no problems. But now when I try to use it on a different project it won't work.
Here is the "functions.php" page code:
<?php
include 'connection.php';
function getusername(){
$query = "SELECT `username` FROM `members` WHERE `ID`=`".$_SESSION['user_id']."`";
if($result = mysqli_query($con, $query)){
while($row = mysqli_fetch_assoc($result)){
return $row['username'];
}
}
mysqli_free_result($result);
}
?>
On my login.php page I have a session variable that stores the user ID from the table in "$_SESSION['user_id']". I have echoed out the user ID so I know that the user ID is set.
On the page that I want the username echoed to, I have this snippet of code:
<?php echo getusername();?>
I also have the functions.php page "included" on the page where I want the username echoed to.
Answer
Solution:
Your $con isn't set inside your function, so mysqli won't work. Additionally you're using backticks around the value you're searching for
$_SESSION['user_id']
backticks are for column names, you should use'
around values.try it like this:
Then call it passing
$con
to the function:On a side note your
mysqli_free_result
doesn't work if there are results as thereturn
will stop the function. I updated the function a bit for it to work as you expect.