没有为准备好的声明中的参数提供数据

时间:2017-04-12 16:02:29

标签: php

我写了一个类来获取值和table_name作为参数,并将值插入到相应的表中。这在我的linux系统上的项目中工作得非常好。但是今天我把一个项目移到了一台Windows笔记本电脑上,而且这个课程给出了错误

  

“预备语句中没有为参数提供数据。”

这是我的班级:

<?php
/**
 * Created by PhpStorm.
 * User: root
 * Date: 3/27/17
 * Time: 10:11 PM
 */
namespace MYSQL;
ini_set('display_errors',0);

class Insert
{
    private $table_name;
    private $array;


    //initializing variable and array

    public function  __construct(){
        $this->table_name='';
        $this->array= array();

    }

    /**
     * @set array
     */
    public function setArray($array){

        foreach ($array as $key => $value)
            $this->array[$key]=$value;
    }

    /**
     * @set array
     */
    public function setTableName($table_name){

        $this->table_name=$table_name;
    }

    /**
     * @return array
     */
    public function getArray()
    {
        return $this->array;
    }

    /**
     * @return string
     */
    public function getTableName()
    {
        return $this->table_name;
    }


    public function performTask($con){


        foreach ($this->getArray() as $key=>$value){

            $fields[]=$key;
            $values[]=$value;
            /*
            if(gettype($value)== 'integer')
                $values['i']=$value   ;
            if(gettype($value)== 'string')
                $values['s'] =$value;
            if(gettype($value)== 'double')
                $values['d']=$value;
            */

        }


        $stmt=$con->prepare("INSERT INTO ".$this->getTableName()."(".implode(',',$fields).") VALUES (".implode(',', array_fill(0, count($fields), '?')).")");
        $values = array_merge(array(str_repeat('s', count($values))), array_values($values));
        call_user_func_array(array(&$stmt, 'bind_param'), $values);

        if($stmt->execute()){
            $stmt->close();
            return "Inserted Successfully.";

        }
        else{
            $stmt->close();
            return "Failed to Insert records.";
        }
    }
}

我已经认真地解决了关于这个错误的所有问题,并且还没有为我的案例找到任何合理的解决方案。

0 个答案:

没有答案