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_Data127.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. phpを使用してmysqlデータベーステーブルの内容をPDFファイルにエクスポートします

    2. Laravelの雄弁なクエリ

    3. MySQL:同じクエリでSELECTとCOUNT

    4. mysqlは2つのテーブル、2つの列を結合します