Halo, Reply saya ada di bawah bagian regular expression.
On Tue, Mar 16, 2004 at 07:54:03PM -0800, dudy rudianto wrote: > Halo Linuxer, aku ada masalah nih sbb > gimana insert data ke mysql dari > inputan seorang user, > inputan itu nanti masing-masing masuk ke fieldnya. > saya udah coba tapi gagal terus kalo inputannya dari > user > tapi kalo langsung ditulis di source bisa tuh. > > berikut adalah source programmnya > > #!/usr/bin/perl > > use DBI; > > sub insert { > > my($nim,$nama,$password,$ipk) = @_; > my($sql); > > #konfigurasi database > $database = "test"; > $dbuser = "test"; > $dbpasswd = "TesTer"; > $dbhost = "localhost"; > $dsn = > "DBI:mysql:database=$database;host=$dbhost"; > $dbh = DBI->connect($dsn,$dbuser,$dbpasswd) || > die $DBI::errstr; > > $sql = "insert into sms_mhs > (nim,nama,password,ipk) values > ('$nim','$nama','$password')"; > > #$sql = "insert into sms_mhs > (nim,nama,password,ipk) values > ('12345678','test','12345678')"; > > $dbh->do($sql) || die ($dbh->err); > return $dbh->{'mysql_insertid'}; > > $dbh->disconnect; > } > print "INPUTAN : "; > while ($isi=<>) { > if ($isi =~/12345678,test,12345678/){#inputan > pakai koma sebagai pemisah Kalo regular expressionnya seperti ini, berarti user harus memasukkan string persis seperti itu. Jadi string berikut harus di enter oleh user atau if bakal gagal terus: 12345678,test,12345678 Kalo yg anda maksud adalah demikian: - bilangan 1 sampe 8 DAN cuma 8 characters - ditengah ada 4 character alphabet - delimiter (pemisah) pake "," if ($isi =~ /[1-8]{8},\[a-zA-Z]{4},[1-8]{8}/) { } Ati2 pake \w, karena \w mengikutkan bilangan dan '_'. Jadi \w = [a-zA-Z0-9_]. Untuk lebih detail bisa dilihat di "man perlre". Salam, Andrew... > #if ($isi =~/12345678 test 12345678/){#inputan > pakai spasi sebagai pemisah > #if ($isi > =~/(\d{8})(\s{1})(\w{4})(\s{1})(\w{8})(\s{1})(\w{2})/){ > #if ($isi > =~/(\d{8})(\s{1})(\d{4})(\s{1})(\d{8})(\s{1})(\d{2})/){ > #if ($isi > =~/(\d{2})(\d{2})(\d{2})(\d{2})(\s{1})(\w{4})(\s{1})(\w{8})(\s{1})(\w{2})/){ > > insert(); > > }else{ > print "error"; > }#end if > > print "\nINPUTAN : "; > > }#end while > > -- > Berhenti langganan: [EMAIL PROTECTED] > Arsip dan info: http://linux.or.id/milis.php -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis.php