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