gpt4 book ai didi

php - 使用批量查询在数据库中插入特殊字符

转载 作者:搜寻专家 更新时间:2023-10-30 23:48:09 24 4
gpt4 key购买 nike

我需要在数据库中插入大量国家和相应的信息。这行得通,但是特殊字符被插入到数据库中,例如 ü 和 É。如何使用特殊字符将国家/地区插入数据库(最好使用以下代码)?

下面是我为此使用的代码。我使用多查询,因为我运行了多个查询(下面的代码只是一小部分)。作为例子,我放了一些带有特殊字符的国家(真实列表大约是 250 个国家)。

Insert_countries.php:

include 'mysql_connect.php';

// select database
mysqli_select_db( $mysqli, 'my_database' );

// check connection
if ( $mysqli->connect_errno > 0 ) {
trigger_error( 'Database connection failed: ' . $mysqli->connect_error, E_USER_ERROR );
}

// sql query
$sql = 'INSERT INTO countries (country_code_num, country_code_iso, country_en, country_nl, country_de, country_fr, country_continent, country_region, country_union) VALUES
("016", "AS", "American Samoa", "Amerikaans-Samoa", "Amerikanisch-Samoa", "Samoa américaine", "Oceania", "Polynesia", ""),
("020", "AD", "Andorra", "Andorra", "Andorra (Fürstentum)", "Andorre (Principauté)", "Europa", "Southern Europe ", ""),
("044", "BS", "Bahamas", "Bahama\'s", "Bahamas", "Bahamas", "Americas", "Caribbean", ""),
("894", "ZM", "Zambia", "Zambia", "Sambia", "Zambie", "Africa", "Eastern Africa", "");';

// Execute multi query
if ( $mysqli->multi_query( $sql ) ) {
do {
if ( $res = $mysqli->store_result() ) {
while ( $row = $res->fetch_row() ) {
printf( "%s\n", $row[0] );
}
$result->free();
}
if ( $mysqli->more_results() ) {
printf( "-----------------\n" );
}
}
while ( $mysqli->next_result() );
}

$mysqli->close();

编辑:

根据要求(的一部分)创建表语句以及创建数据库。

// create database
$sql = "CREATE DATABASE IF NOT EXISTS my_database CHARACTER SET utf8 COLLATE utf8_general_ci";

// create table
$sql = "CREATE TABLE IF NOT EXISTS countries (
country_code_num INT(3) NOT NULL,
country_code_iso VARCHAR(3) NOT NULL,
country_en VARCHAR(75) NOT NULL,
country_nl VARCHAR(75) NOT NULL,
country_de VARCHAR(75) NOT NULL,
country_fr VARCHAR(75) NOT NULL,
country_continent VARCHAR(30) NOT NULL,
country_region VARCHAR(30) NOT NULL,
country_union VARCHAR(30) NOT NULL,
PRIMARY KEY ( country_code_num ));";

最佳答案

评论中讨论的结果是字符集设置不正确。插入

 $mysqli->set_charset('utf8');

解决了这个问题。这是为连接设置所需字符集的首选方法,我将文档引用到 mysqli::set_charset

Note:

This is the preferred way to change the charset. Using mysqli_query() to set it (such as SET NAMES utf8) is not recommended.

关于php - 使用批量查询在数据库中插入特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25293450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com