Building Chinese Web Sites using PHP
Dr. Herong Yang, Version 2.11

Fetching Chinese Text from Database to Web in GBK

This section describes how to fetch Chinese text from MySQL database and send it to a Web page through Apache in GBK encoding.

After successfully fetched Chinese from MySQL database and displayed them on a Web page with UTF-8 encoding, I continued to try the same logic with GBK encoding. Here is the test PHP script:

<?php #MySQL-Web-Chinese-GBK.php
# Copyright (c) 2007 by Dr. Herong Yang, http://www.herongyang.com/
#
  $con = mysql_connect("localhost", "Herong", "TopSecret");
  $ok = mysql_select_db("HerongDB", $con);
  $test_name = "Moving Chinese Text from Database to Web";
  print('<html>');
  print('<meta http-equiv="Content-Type"'.
    ' content="text/html; charset=gbk"/>');
  print('<body><pre>'."\n");

# Delete the record
  $sql = "DELETE FROM Comment_Mixed WHERE Test_Name ='$test_name'";
  mysql_query($sql, $con);
  print("\nNumber of rows deleted: ".mysql_affected_rows()."\n");

# Build the SQL INSERT statement
  $sql = <<<END_OF_MESSAGE
INSERT INTO Comment_Mixed (Test_name, String_ASCII, 
    String_Latin1, String_UTF8, String_GBK, String_Big5)
  VALUES ('$test_name', 'Television', 
    X'54E96CE9766973696F6E', 
    X'E794B5E8A786E69CBA2FE99BBBE8A696E6A99F', 
    X'B5E7CAD3BBFA', 
    X'B971B5F8BEF7');
END_OF_MESSAGE;
  mysql_query($sql, $con);
  print("\nNumber of rows inserted: ".mysql_affected_rows()."\n");

# Set character_set_results
  mysql_query("SET character_set_results=gbk", $con);

# Fetch text data from database
  $sql = "SELECT * FROM Comment_Mixed"
    . " WHERE Test_Name = '$test_name'";
  $res = mysql_query($sql, $con);

# Send text data output
  if ($row = mysql_fetch_array($res)) {
    print("\nTest Name = ".$row['Test_Name']."\n");
    print("   String_ASCII: ".$row['String_ASCII']."\n");
    print("   String_Latin1: ".$row['String_Latin1']."\n");
    print("   String_UTF8: ".$row['String_UTF8']."\n");
    print("   String_GBK: ".$row['String_GBK']."\n");
    print("   String_Big5: ".$row['String_Big5']."\n");
  }  
  mysql_free_result($res);

  mysql_close($con); 
  print('</pre></body></html>');
?>

Not too surprised. I got all Chinese characters displayed correctly on the Web page:
Displaying Chinese correctly in GBK

MySQL did a good job again on converting my UTF-8 and Big5 encoded Chinese characters to GBK encoded Chinese characters.

Sections in This Chapter

Steps and Application Components Involved

Fetching ASCII Text from Database to Web

Fetching Chinese Text from Database to Web

Fetching Chinese Text from Database to Web in UTF-8

Fetching Chinese Text from Database to Web in GBK

Fetching Chinese Text from Database to Web in Big5

Summary - Fetching Chinese Text from Database to Web

Dr. Herong Yang, updated in 2007
Fetching Chinese Text from Database to Web in GBK