Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване на данни от Perl към MysQL

Вашето използване на $db_config променлива ми изглежда подозрително. Или хешът на конфигурацията ви е странен, или използвате стойности вместо ключове.

Не сте ни показали къде $db_config е настроен, но предполагам, че изглежда по следния начин:

$db_config = {
  name => 'Top_Data',
  host => '127.0.0.1',
  port => 3306,
  username => 'someone',
  password => 'a secret',
};

И тогава бихте го използвали така:

my $dsn = "DBI:mysql:database=".$db_config->{name}.";host=".$db_config->{host}.";port=".$db_config->{port};

Забележете, че използвах имената на ключовете (name , host и port ) вместо стойностите (Top_Data , 127.0.0.1 и 3306 ).

Ще отбележа също, че можете леко да опростите това, като използвате способността на Perl да разширява променливи вътре в низ в двойни кавички.

my $dsn = "DBI:mysql:database=$db_config->{name};host=$db_config->{host};port=$db_config->{port}";

По-късно има друг проблем, с вашия SQL оператор.

my $sql = 'insert into Top(Load_Average, CPU_us, CPU_id, CPU-wa, CPU_hi, 
           CPU_si, CPU_st, Swap_Total, Swap_Free, Swap_Used, Memory_Total, 
           Memeory_Free, Memory_Used, Memory_Buff, Date) 
           values(float,float,float,float,float,float,float,float,
           varchar,varchar,varchar,varchar,varchar,varchar,date)';

Стойностите, които трябва да вмъкнете, са действителните елементи от данни. Така че там, където имате низовете "float", "varchar" или "date", всъщност трябва да имате елементи с данни (число с плаваща запетая, низ или дата).

И накрая, след като сте подготвили оператора си, не е необходимо да го предавате на execute() метод. Трябва обаче да разгледате използването на точки за свързване във вашия SQL и предаване на вашите действителни елементи от данни към execute() обаждане




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създам дял за всеки месец от текущата година

  2. SQL Брой редове

  3. Как да тествате дали даден низ е JSON или не?

  4. Как работи функцията MID() в MySQL

  5. Как мога да прилагам привилегии във форума