Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memasukkan Data Dari Perl Ke MysQL

Penggunaan Anda atas $db_config variabel terlihat mencurigakan bagi saya. Entah hash konfigurasi Anda aneh, atau Anda menggunakan nilai alih-alih kunci.

Anda belum menunjukkan kepada kami di mana $db_config sudah diatur, tapi saya kira itu terlihat seperti ini:

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

Dan kemudian Anda akan menggunakannya seperti ini:

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

Perhatikan bahwa saya telah menggunakan nama kunci (name , host dan port ) bukan nilai (Top_Data , 127.0.0.1 dan 3306 ).

Saya juga akan menunjukkan bahwa Anda dapat menyederhanakan ini sedikit dengan menggunakan kemampuan Perl untuk memperluas variabel di dalam string bertanda kutip ganda.

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

Ada masalah lain nanti, dengan pernyataan SQL Anda.

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)';

Nilai yang harus Anda sisipkan adalah item data aktual. Jadi di mana Anda memiliki string "float", "varchar" atau "date", Anda seharusnya memiliki item data (angka floating-point, string, atau tanggal).

Terakhir, setelah menyiapkan pernyataan Anda, Anda tidak perlu meneruskannya ke execute() metode. Namun, Anda harus melihat penggunaan titik pengikat dalam SQL Anda dan meneruskan item data aktual Anda ke execute() telepon




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hubungkan ke mysql jarak jauh melalui terminal

  2. Memilih rentang tanggal MySQL dengan date_format

  3. if(!isset($_SESSION['username'])) menyebabkan pengguna dialihkan dari verifikasi_login_form.php kembali ke index.php

  4. IMAP &PHP - Mengambil semua email dari folder terkirim dan kotak masuk

  5. MYSQL:Prosedur dengan pernyataan if