知道的来说下.
我在 PHP 脚本中使用 
$pdo = new PDO('mysql:yangxianxueya;host:127.0.0.1;' , 'root' , '');
$pdo->prepare('INSERT INTO category (?) VALUES (?)');
var_dump($statement);
$statement->execute(array('name','123'));
没有执行成功.同时说 php 脚本中不支持 $pdo->prepare?

解决方案 »

  1.   

    支持 但你没装PDO扩展 
      

  2.   

    装了, 我用 prepare ('select') 语句加 bindparam 都是可以运行的, 但是在指定 INSERT 语句就不行
      

  3.   

    //$db->prepare('SELECT * FROM user where id=:id or id<:id ');
    //$db->bindParam(':id','2');
    //$db->execute();
    上面可运行function insert($table = '' , $array = array())
        {
            if(empty ($array)) return false;
            $count = count($array);
            $question = '?' . str_repeat(',?', $count - 1);
            $sql = 'INSERT INTO '.$table .' ('. $question .') VALUES ('. $question .')';
            $this->prepare($sql);
            foreach($array as $k=>$v)
            {
                $i = 1;
                $this->bindParam($i , $k );
                $this->bindParam($i + $count , $v );
                $i++;
            }        var_dump($this->PDOStatement);
            $this->execute($sql);
        }
    不运行
      

  4.   

    $this确定是指向一个PDO对象吗?
      

  5.   

    要先安装 pdo 扩展模块
      

  6.   

      $this->prepare($sql); //这个$this哪来的?
      

  7.   

    execute()
    这是处理
    而且你有指向吗$this->class db extends PDO {
    你也可以重写一下
      

  8.   

    category (?) 
    这些地方不能用 bindParam ,一定要字串
    bindParam 只能用于字段的值
      

  9.   

    知道问题了...
    $this->execute($sql);  多传了 $sql