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

HTML &PHPMySQL , Masukkan banyak data ke dalam Tabel dari textarea

Beberapa perubahan yang seharusnya cukup:

  • Seperti yang disebutkan RiggsFolly, textarea harus dipindahkan ke formulir
  • Saya akan membuat metode pengiriman formulir POST bukannya GET . Dengan begitu data tidak akan ditambahkan ke URL (yaitu dalam string kueri).

    <form method="post" id="testformid">

  • Batasi karakter baris baru (yaitu \n ) menggunakan tanda kutip ganda:mis. $lines = explode("\n",$_POST['taname']);

  • Gunakan fungsi mysqli (mis. mysqli_connect() , mysqli_prepare() , mysqli_bind_param() dan mysqli_execute() ) atau Fungsi PDO untuk memasukkan data ke dalam database

Sunting:

Panggilan ke mysqli_bind_param() harus dipanggil dengan semua parameter sekaligus, bukan sekali per parameter. Untuk melakukan ini dengan sejumlah parameter yang bervariasi, kita harus menggunakan teknik seperti yang dijelaskan di artikel ini .

    <?php
    $lines = array();
    $output = '';
    if(array_key_exists('taname',$_POST) && $_POST['taname']) {
        $lines = explode("\n",$_POST['taname']);

        //define $host, $username, $pw, $databaseName before this
        //$host = 'localhost';...etc...
        $connection = mysqli_connect($host,$username, $pw, $databaseName);
        if ($connection) {
            $paramHolders = array_map(function() { return '?';},$lines);

            //update tablename, column name accordingly 
            $insertQuery = 'INSERT INTO tableName (columnName) VALUES ('.implode('), (',$paramHolders).')';
            $statement = mysqli_prepare($connection,$insertQuery);
            //this will be used as the first param to mysql_stmt_bind_param
            // e.g. 'ssss' - one 's' for each line
            $types = str_repeat('s',count($lines));
            $params = array($statement,&$types);
            //add each line by-reference to the list of parameters
            foreach($lines as $index=>$line) {
                $output .= '<div>inserted line: '.$line.'</div>';
                $params[] = &$lines[$index];
            }
            //call mysql_bind_param() with the varying number of arguments
            call_user_func_array('mysqli_stmt_bind_param',$params);
            $statement->execute();
        }
    }
    ?>
    <html>
        <body>
            <form method="post" id="testformid">
                <textarea name="taname" id="taid" cols="35" wrap="soft"></textarea>
                <input type="submit"/>
            </form>
            <? echo $output; ?>
        </body>
    </html>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sekuel kembali bergabung dengan tabel dalam kueri

  2. Proses pembunuhan MySQL adalah pengguna tidak mendapat cukup poin PHP

  3. Tidak ditemukan driver yang cocok untuk jdbc di Spark

  4. Masukkan beberapa baris ke dalam database MySQL dari sebuah tabel

  5. Menyimpan datetime sebagai UTC di PHP/MySQL