Mahdi_Nine Mahdi_Nine - 1 month ago 9
PHP Question

utf 8 - PHP and MySQLi UTF8

my table char set is utf8 and it's collation is utf8.now i have this code:

$mysqli = new mysqli("localhost", "root", "", "Amoozeshgah");

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());

}
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}
mysql_set_charset('utf8');
if ($stmt = $mysqli->prepare("SELECT About_Title FROM Tbl_About WHERE About_Id=?")) {
$city = 8;

/* bind parameters for markers */
$stmt->bind_param("s", $city);

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

/* bind result variables */

$result = $stmt->get_result();

/* fetch value */
while ($myrow = $result->fetch_assoc()) {

// use your $myrow array as you would with any other fetch
printf("%s is in district %s\n", $city, $myrow['About_Title']);
print("shod");

}


but out put is:

Current character set: utf8 8 is in district نتمنتشس shod


what can i do?
Edit:
i replaced:

if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}
mysql_set_charset('utf8');


with

$mysqli->set_charset("utf8")


but no difference.

Answer

Please replace mysql_set_charset('utf8'); to $mysqli->set_charset("utf8") :-)

Comments