Search code examples
phpmysqlapostrophe

mysql: apostrophe not being read from varchar column in database?


i have the following table for new_supplier_request:

Id  |  ref  |  User   |  Manager (Varchar)
1      12      James     Henry O'Brien

I also have my internal_users table:

 Id  |    User_firs_name   |  user_last_name(Varchar)    
 1        Henry               O'Brien

i am using the following mysql query to give a manager permission (who is logged in) to view some content if the managers name appears for that row of data in the manager column of my new_supplier_request table

$_SESSION['username'] = internal_users.user_first_name
$_SESSION['username2'] = internal_users.user_last_name
$user = $_SESSION['username']." ".$_SESSION['username2'];

$sql34 = "select * from new_supplier_request, internal_users where new_supplier_request.status!= 'complete' and new_supplier_request.action_taken ='none' AND new_supplier_request.user_id = internal_users.user_id AND requestee_manager = '$user'";
$result = $conn->query($sql34);

For some reason this works fine if the last name does not contain an apostrophe, but because this managers last name is O'Brien for some reason when i check in my query it is failing because it is having difficulty reading the apostrophe in the name, if i change henry's last name to something like James then it works. can someone please explain what i am doing wrong? Thanks


Solution

  • Check this one:

    $_SESSION['username'] = mysqli_real_escape_string($conn, internal_users.user_first_name);
    $_SESSION['username2'] = mysqli_real_escape_string($conn, internal_users.user_last_name);