Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

HTML &PHPMySQL, Chèn nhiều dữ liệu vào Bảng từ textarea

Một vài thay đổi đủ:

  • Như RiggsFolly đã đề cập, textarea nên được chuyển vào biểu mẫu
  • Tôi sẽ thực hiện phương pháp gửi biểu mẫu POST thay vì GET . Bằng cách đó, dữ liệu sẽ không được nối vào URL (tức là trong chuỗi truy vấn).

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

  • Phân cách ký tự dòng mới (tức là \n ) sử dụng dấu ngoặc kép:ví dụ:$lines = explode("\n",$_POST['taname']);

  • Sử dụng các hàm mysqli (ví dụ: mysqli_connect () , mysqli_prepare () , mysqli_bind_param () mysqli_execute () ) hoặc chức năng PDO để chèn dữ liệu vào cơ sở dữ liệu

Chỉnh sửa:

Lệnh gọi tới mysqli_bind_param () phải được gọi với tất cả các tham số cùng một lúc, thay vì một lần cho mỗi tham số. Để thực hiện việc này với nhiều thông số khác nhau, chúng ta phải sử dụng kỹ thuật như kỹ thuật được mô tả trong bài viết này .

    <?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. NHÓM MySQL THEO NULL và EMPTY

  2. tham gia bên trong và thực hiện mệnh đề ở đâu trong ()?

  3. cách chỉ cấp đặc quyền MySQL cho một hàng cụ thể

  4. Kết hợp nhóm theo và đếm mysql

  5. Cột thời gian CakePHP 3 được thêm ngày