首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将$_POST数据放入数组中

将$_POST数据放入数组中
EN

Stack Overflow用户
提问于 2016-12-31 16:05:53
回答 0查看 120关注 0票数 0

我尝试将$_POST中的所有数据放入如下所示的数组中:

代码语言:javascript
运行
复制
$produk =
        [
            'kode'=>$_POST['kode'],
            'id_kategori'=>$_POST['kategori'],
            'produk'=>$_POST['produk'],
            'keterangan'=>$_POST['keterangan'],
            'harga'=>$_POST['harga'],
            'potongan'=>$_POST['potongan'],
            'jumlah'=>$_POST['jumlah'],
            'berat'=>$_POST['berat'],
            'warna'=>$_POST['warna'],
            'ukuran'=>$_POST['ukuran']
        ];

但是当我尝试将它插入到某个类中时,我总是得到一个错误,并得到这样的错误:

代码语言:javascript
运行
复制
( ! ) Fatal error: Uncaught Error: Call to a member function tambahProduk() on array in C:\wamp64\www\core\test.php on line 35
( ! ) Error: Call to a member function tambahProduk() on array in C:\wamp64\www\core\test.php on line 35

当我使用下面代码测试我的数据时,它工作得很好:

代码语言:javascript
运行
复制
$data =
        [
            'kode' => 'abcde',
            'id_kategori' => '1',
            'produk' => 'Topi',
            'keterangan' => 'Baju ini dibuat dengan penuh hati.',
            'harga' => '250000',
            'potongan' => '0',
            'jumlah' => '3',
            'berat' => '100',
            'warna' => 'merah, kuning, hijau',
            'ukuran' => 's, m, xl, xxl'
        ];

当我在$produk上使用Print_r时,我得到了这样的结果:

代码语言:javascript
运行
复制
Array ( [kode] => JKW001 [id_kategori] => 1 [produk] => Baju Jokowi 01 [keterangan] => Kaos oblong enak sekali dipakai [harga] => 10000 [potongan] => 2 [jumlah] => 12 [berat] => 11 [warna] => merah, kuning, hijau, biru, coklat [ukuran] => A,B,C,D,E,F,G ) 

下面是tambahProduct函数内部的内容:

代码语言:javascript
运行
复制
public function tambahProduk($produk){
        try{
            $this->pdo->beginTransaction();
            $sql = 'INSERT INTO produk 
            (kode_produk, id_kategori, nama_produk, keterangan, harga, potongan, jumlah_tersedia, berat)
            VALUES (:kode_produk, :id_kategori, :nama_produk, :keterangan, :harga, :potongan, :jumlah_tersedia,
          :berat)';

            $stmt = $this->pdo->prepare($sql);
            $stmt->bindParam(':kode_produk', $produk['kode'], \PDO::PARAM_STR);
            $stmt->bindParam(':id_kategori', $produk['id_kategori'], \PDO::PARAM_INT);
            $stmt->bindParam(':nama_produk', $produk['produk'], \PDO::PARAM_STR);
            $stmt->bindParam(':keterangan', $produk['keterangan'], \PDO::PARAM_STR);
            $stmt->bindParam(':harga',$produk['harga'] ,\PDO::PARAM_INT);
            $stmt->bindParam(':potongan', $produk['potongan'],\PDO::PARAM_INT);
            $stmt->bindParam(':jumlah_tersedia',$produk['jumlah'] ,\PDO::PARAM_INT);
            $stmt->bindParam(':berat',$produk['berat'] ,\PDO::PARAM_INT);
            $stmt->execute();
            $id_produk = $this->pdo->lastInsertId();

            $sql2 = 'INSERT INTO ukuran (ukuran) VALUE (:ukuran)';
            $stmt = $this->pdo->prepare($sql2);
            $ukuran = explode(",",$produk['ukuran']);
            $id_ukuran = [];
            foreach ( $ukuran as $key => $value) {
                if (!empty($value)) {
                    $stmt->bindParam(':ukuran', $value);
                    $stmt->execute();
                    $id_ukuran[] = $this->pdo->lastInsertId();
                    //echo $value;
                    //print_r($id_ukuran);
                }
            }

            $sql3 = 'INSERT INTO ukuran_produk (id_produk, id_ukuran) VALUES (:id_produk,:id_ukuran)';
            $stmt = $this->pdo->prepare($sql3);
            foreach ( $id_ukuran as $key => $value) {
                if (!empty($value)) {
                    $stmt->bindParam(':id_produk', $id_produk);
                    $stmt->bindParam(':id_ukuran', $value);
                    $stmt->execute();
                }
            }

            $sql4 = 'INSERT INTO warna (warna) VALUE (:warna)';
            $stmt = $this->pdo->prepare($sql4);
            $warna = explode(",",$produk['warna']);
            $id_warna = [];
            foreach ( $warna as $key => $value) {
                if (!empty($value)) {
                    $stmt->bindParam(':warna', $value);
                    $stmt->execute();
                    $id_warna[] = $this->pdo->lastInsertId();
                    //echo $value;
                    //print_r($id_warna);
                }
            }

            $sql5 = 'INSERT INTO warna_produk (id_produk, id_warna) VALUES (:id_produk,:id_warna)';
            $stmt = $this->pdo->prepare($sql5);
            foreach ( $id_warna as $key => $value) {
                if (!empty($value)) {
                    $stmt->bindParam(':id_produk', $id_produk);
                    $stmt->bindParam(':id_warna', $value);
                    $stmt->execute();
                }
            }

            $this->pdo->commit();
        }catch (\PDOException $e){
            echo $e;
        }

    }

那么,是什么导致了这些错误,尽管数据是相同的。谢谢。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41406612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档