Home  >  Article  >  Backend Development  >  PHP mssql extended SQL query Chinese field name solution_PHP tutorial

PHP mssql extended SQL query Chinese field name solution_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:15:57868browse

1. Question:

The database is MS SQLServer2000. We need to import the data of a table in SQLServer2000 into MySQL5. The fields of the SQLServer2000 table are named in simplified Chinese (it is strongly recommended not to do it in Chinese). is the field name). In fact, the operation is to query the records on SQL Server and insert them into MySQL. The chosen scripting language is PHP. PHP opens MSSQL and MySQL extensions, making it easy to operate both databases.
The problem occurs in that the field names of the table in SQLServer are in Chinese. When the written query statement is tested in SQLServe, records are returned, and when using PHP's MSSQL extended query, an error is reported.
I checked the information on the Internet, and there is not much relevant information online. Many netizens think that the MSSQL extension of PHP does not support Chinese characters in SQL statements. After checking the information, PHP's MSSQL supports Chinese statements in SQL. Most error reporting problems are due to encoding problems. The encoding database and encoding are not consistent with the encoding of the query statement. The Chinese part of the query statement in SQL Server becomes garbled, causing the query to fail.

2. Solution:

After knowing the reason, we will analyze and solve it and confirm that it is a problem of inconsistent coding. The solution is divided into the following steps:
1. Confirm the encoding of the SQLServer database. My data encoding is GBK.
2. Confirm the encoding of the current PHP script file. My encoding is UTF-8.
3. Convert the encoding of SQL query statements.
Supplement: Some netizens mentioned that they need to convert the encoding of PHP script files to be consistent with the encoding of the database. In fact, this step is not necessary. Just make sure that your SQL statement is consistent with the encoding of the database. It is recommended that you do not need to convert. The reason is that if your PHP script file contains other PHP scripts, you must also convert the encoding of all include or require script files. Otherwise, the encoding of PHP scripts is not uniform and it is easy to make errors. If there are many interrelated files, this is also very difficult. Troublesome question and complicates matters.

Third plan:

Write a conversion function to convert the SQL statement encoding before operating the SQL. My sample code is posted below:

Copy code The code is as follows:

//Encoding conversion function
function utf8togb ($s) {
return iconv('utf-8', 'gbk//IGNORE', $s); // The IGNORE parameter is ignored when encountering characters that cannot be converted
}
// It is recommended to replace all Chinese fields with English aliases to facilitate the following operations and coding conversion issues
$sql="SELECT [id], [column] as typeid, [title] as title, [author] as author, convert (text, [text]) as body FROM [article table];";
$sql = utf8togb($sql);

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326035.htmlTechArticle1. Question: The database is MS SQLServer2000. We need to import the data of a table in SQLServer2000 into MySQL5, where SQLServer2000 The fields of the table are named in simplified Chinese (it is strongly recommended not to use Chinese...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn