$mysqli_stmt=$mysqli->prepare($sql);上面的prepare是属于mysqli_stmt类的?为什么直接用$mysqli->prepare?两个根本没关系
按道理应该这样
$mysqli_stml=new mysqli_stmt();
$stmt=$mysql_stmt->prepare();

解决方案 »

  1.   

    mysqli_stmt mysqli::prepare ( string $query )
    手册上的定义你能找到吧?
    它的含义是 prepare属于mysqli类,参数为字符串类型,返回值是mysqli_stmt类的实例。
      

  2.   

    还是不太懂。。直接用这句话$stmt=$mysql_stmt->prepare();就相当于创建了一个对象$stmt?这地方我整不明白。
      

  3.   

    这段代码是错误的。
    1, $mysqli_stml=new mysqli_stmt();  // 这个mysqli_stmt类不应该被实例化
    2, $stmt=$mysql_stmt->prepare();  // prepare()方法属于mysqli类,不属于mysqli_stmt类
    mysql prepare()
    mysql类的方法列表
    mysqli_stmt类的方法列表$mysqli_stmt=$mysqli->prepare($sql); 这个语句是正确的
    它调用 mysqli类的prepare方法。该方法返回一个mysqli_stmt类的对象,该对象拥有例如fetch()这类的方法,可以取出查询得到结果集
      

  4.   

    还是不太懂。。直接用这句话$stmt=$mysqli->prepare($sql);就相当于创建了一个对象$stmt?但是创建对象应该用new 的啊。。这地方我整不明白。刚打错了。。
      

  5.   

    我的表达也并不清楚...
    直接用这句话$stmt=$mysqli->prepare($sql);就相当于创建了一个对象$stmt?
     是!
    但是创建对象应该用new 的啊
     在prepare()方法内也可以创建对象呀,不一定非要由你来
      

  6.   

    在哪里 new 并不重要class T {}function foo() {
      return new T;
    }$p = foo();print_r($p);T Object
    (
    )