big_record.pl
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #!/usr/bin/perl
  2. # This is a test with stores big records in a blob
  3. # Note that for the default test the mysql server should have been
  4. # started with at least 'mysqld -O max_allowed_packet=200k'
  5. $host= shift || "";
  6. $test_db="test";
  7. $opt_user=$opt_password="";
  8. use DBI;
  9. $|= 1; # Autoflush
  10. $table="test_big_record";
  11. $rows=20; # Test of blobs up to ($rows-1)*10000+1 bytes
  12. print "Connection to database $test_dbn";
  13. $dbh = DBI->connect("DBI:mysql:$test_db:$host",$opt_user,$opt_password) || die "Can't connect: $DBI::errstrn";
  14. $dbh->do("drop table if exists $table");
  15. print "Creating table $tablen";
  16. ($dbh->do("
  17. CREATE TABLE $table (
  18.   auto int(5) unsigned NOT NULL DEFAULT '0' auto_increment,
  19.   test mediumblob,
  20.   PRIMARY KEY (auto))"))  or die $DBI::errstr;
  21. print "Inserting $rows recordsn";
  22. for ($i=0 ; $i < $rows ; $i++)
  23. {
  24.   $tmp= chr(65+$i) x ($i*10000+1);
  25.   $tmp= $dbh->quote($tmp);
  26.   $dbh->do("insert into $table (test) values ($tmp)") or die $DBI::errstr;
  27. }
  28. print "Testing recordsn";
  29. $sth=$dbh->prepare("select * from $table") or die $dbh->errstr;
  30. $sth->execute() or die $sth->errstr;
  31. $i=0;
  32. while (($row = $sth->fetchrow_arrayref))
  33. {
  34.   print $row->[0]," ",length($row->[1]),"n";
  35.   die "Record $i had wrong data in blob" if ($row->[1] ne (chr(65+$i)) x ($i*10000+1));
  36.   $i++;
  37. }
  38. die "Didn't get all rows from server" if ($i != $rows);
  39. $dbh->do("drop table $table") or die $DBI::errstr;
  40. print "Test okn";
  41. exit 0;