나는 PHP 코딩 경험을 가진 Perl의 완전한 초보자이며,이 Perl 스크립트를 함께 사용하여 EOL 문자없이 상당히 큰 데이터 파일을 읽고 INSERT 문으로 SQL 파일을 작성한다. 내 문제는 소스 파일에 "특수 문자"(예 : 작은 따옴표)가 있고 그 문자 때문에 잘못된 SQL 쿼리로 끝납니다.Perl에서 SQL 파일 작성하기
내 질문 : SQL 쿼리를 작성하기 전에 데이터를 벗어날 수있는 방법이 있습니까?
이#! /usr/bin/perl
use strict;
use warnings;
my $filename = "foo.dat";
my $buf = "";
open (MYFILE, '>data.sql');
open(my $fh, "<", $filename) or die $!;
while(read($fh, $buf, 80)) {
if (defined $buf && length $buf > 2) {
my $aa = substr $buf, 0, 2;
my $bb = substr $buf, 2, 1;
my $cc = substr $buf, 3;
print MYFILE "INSERT INTO foo (aa, bb, cc) VALUES ('".$aa."', '".$bb."', '".$cc."')\n";
}
}
close (MYFILE);
DB에 직접 쓰는 것이 더 쉬울 (그리고 더 안전 할 것입니다.) 그리고 그 내용을 보존하고 싶다면 파일에 DB 덤프를 수행하십시오. – Ether