よくある問題だと確信していますが、ベストプラクティスの解決策を探しています。
データを移行するためのスクリプトを作成したレガシーデータベースがあります。
私のスクリプトには次のものがあります。
$select = $dbh->query("SELECT CollectionID, CollectionCode, Name FROM $db_local.collection");
while ($collection_row = $select1->fetch (PDO::FETCH_ASSOC)) {
$collection_id = $collection_row['CollectionID'];
$collection_code = !empty($collection_row['CollectionCode']) ? "'{$collection_row['CollectionCode']}'" : "NULL";
$collection_name = !empty($collection_row['Name']) ? "'{$collection_row['Name']}'" : "NULL";
$dbh->exec("INSERT INTO $db_remote.cdrs_collectiononline (
collection_id,
collection_code,
collection_name
) VALUES (
$collection_id,
$collection_code,
$collection_name
)");
}
この行に出くわすまで、これはすべて問題ありません。
| CollectionID | CollectionCode | Name |
+--------------+----------------+-------------------------------------+
| 1032 | MHNG | Muséum d'Histoire Naturelle, Genève |
これをmysqlで直接行う場合(二重引用符に注意):
INSERT INTO cdrs_collectiononline (collection_id, collection_code, collection_name) VALUES ('1032', 'MHNG', "Muséum d'Histoire Naturelle, Genève")
できます。mysql pdoを使用してこれらのラテン文字の可能性に対処するための最良の方法は何ですか?
どんな助けでも大歓迎です。