This section describes a test of storing ASCII characters into non-ASCII columns.
The first test I did is to store ASCII characters into columns defined for non-ASCII character
sets like, Latin1, UTF-8, GBK, and Big5. The test was done with this PHP script:
<?php #MySQL-Insert-ASCII.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 = "ASCII Test";
# Delete the record
$sql = "DELETE FROM Comment_Mixed WHERE Test_Name ='$test_name'";
if (mysql_query($sql, $con)) {
print("Number of rows deleted: ".mysql_affected_rows()."\n");
} else {
print("SQL statement failed.\n");
print(mysql_errno($con).": ".mysql_error($con)."\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',
'Television', 'Television', 'Television', 'Television')
END_OF_MESSAGE;
# Run the SQL statement
if (mysql_query($sql, $con)) {
print("Number of rows inserted: ".mysql_affected_rows()."\n");
} else {
print("SQL statement failed.\n");
print(mysql_errno($con).": ".mysql_error($con)."\n");
}
# Get the recod back
$sql = "SELECT * FROM Comment_Mixed"
. " WHERE Test_Name = '$test_name'";
$res = mysql_query($sql, $con);
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);
?>
The output tells me that ASCCI characters can be stored in character sets: ascii, latin1, utf8, gbk, and big5,
because they are all compatible with ASCII:
C:\>\local\php\php MySQL-Insert-ASCII.php
Number of rows deleted: 0
Number of rows inserted: 1
Test Name = ASCII Test
String_ASCII: Television
String_Latin1: Television
String_UTF8: Television
String_GBK: Television
String_Big5: Television