R에서 아포스트로피를 이스케이프하여 문자열을 MySQL 테이블에 삽입하려면 어떻게 해야 합니까?
R 스크립트를 사용하여 MYSQL 테이블에 문자열을 삽입합니다.일부 문자열에는 테이블에 삽입하기 전에 이스케이프해야 하는 아포스트로피가 포함되어 있습니다.
다음 문자열 지정:
myStr <- "AIN'T NO ELMERS"
다음 대안을 시도해 봤지만 소용이 없었습니다.
str_replace(horse,\w+(.*)',\1\\2\3') ==> 에러 메시지가 나타난다.
str_replace(horse,\w+(\')(.*)',\1\\2\3') ==> 오류는 없지만 삽입된 문자열은 AIN ™T NO ELMERS입니다.
어떻게 하면 탈옥이 성공적으로 아포스트로피를 벗어날 수 있을까요?
my r 스크립트는 다음 형식을 취합니다.
library(DBI)
library(odbc)
library(RMariaDB)
insert <- dbSendQuery(con, "INSERT ignore INTO names(`name`, `value`) VALUES (?, ?)")
dbBind(insert, names)
dbClearResult(insert)
con <- dbDisconnect(con)
MySQL 측에서 하나의 아포스트로피를 회피하는 일반적인 방법은 그것들을 2배로 하는 것입니다(즉, 사용).''
다음 버전을 사용해 보십시오.
myStr <- "AIN''T NO ELMERS"
이 문제는 utf8 문자 집합을 사용하는 것으로 해결되었습니다.
첫 번째 절차로 MYSQL 데이터베이스에서 다음 명령을 사용하여 데이터베이스, 테이블 및 컬럼에서 utf8이 사용되고 있는지 확인합니다.
USE dbname; SELECT @@character_set_database;
SHOW FULL COLUMNS FROM dbname.tablename;
ALTER를 사용하여 데이터베이스, 테이블 및 컬럼을 변경할 수 있습니다.
ALTER TABLE `dbname`.`tablename`
CHANGE COLUMN `colname` `colname` VARCHAR(10) CHARACTER SET 'utf8' NULL DEFAULT NULL ;
다음으로 다음 명령을 사용하여 insert 스테이트먼트도 utf8을 사용하고 있는지 확인합니다.
con <- dbConnect(odbc::odbc(), "MySQL")
dbSendQuery(con, 'set character set "utf8"')
이렇게 하면 테이블에 아포스트로피를 올바르게 삽입할 수 있습니다.
언급URL : https://stackoverflow.com/questions/65572676/how-do-you-escape-an-apostrophe-in-r-so-you-can-insert-the-string-into-a-mysql-t
'itsource' 카테고리의 다른 글
Eclipse 서버 런타임 환경에 Apache Tomcat이 표시되지 않음 (0) | 2022.11.15 |
---|---|
Apache HttpClient를 사용하여 잘못된 SSL 인증서를 처리하는 방법 (0) | 2022.11.15 |
MySQL foreign_key_checks는 데이터베이스 전체에 영향을 미칩니까? (0) | 2022.11.14 |
긴 쿼리를 쓰지 않고 모든 GraphQL 유형 필드를 쿼리하려면 어떻게 해야 합니까? (0) | 2022.11.14 |
JavaScript: 위치.새 창/탭에서 여는 href를 선택하십시오. (0) | 2022.11.14 |