Kshitij Pandey Kshitij Pandey - 4 months ago 18
PHP Question

Illegal mix of collations (ascii_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE)

<?php

include 'db_connect.php';

$name = $_REQUEST['sname'];
$email = $_REQUEST['email'];

$query = "SELECT * FROM info_enrol_student WHERE ES_name = '$name' AND ES_EMAIL = '$email'";
$in = mysqli_query($conn,$query) or die(mysqli_error($conn));
$count = mysqli_num_rows($in);
if (mysqli_num_rows($in) > 0)
{
header('location:index.php');
exit;
}

?>


I am making a login form and giving data to this php code but getting this error.


Illegal mix of collations (ascii_general_ci,IMPLICIT) and
(latin1_swedish_ci,COERCIBLE) for operation '=' in php


I am not able to understand the error because earlier with the same script I was able to login in the system.

Answer

Based on the error stated by you you need to do following:-

Go to the database table and change the collation of these two fields (ES_name and ES_EMAIL) to utf-8-bin and change your query like below:-

$query = "SELECT * FROM info_enrol_student WHERE `ES_name` = $name AND `ES_EMAIL` = $email"; `