Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $stmt变量使用prepare函数包含null_Php - Fatal编程技术网

Php $stmt变量使用prepare函数包含null

Php $stmt变量使用prepare函数包含null,php,Php,$stmt变量为null表示即使创建了到数据库的连接($con),它也不包含我的查询 致命错误:未捕获错误:在C:\xampp\htdocs\WebServersAndroid\includes\DbOperations.php中调用布尔值上的成员函数bind_param()。php:24堆栈跟踪:#0 C:\xampp\htdocs\WebServersAndroid\v1\registerUser.php(12):DbOperation->createUser('syed',1997')#1

$stmt变量为null表示即使创建了到数据库的连接($con),它也不包含我的查询

致命错误:未捕获错误:在C:\xampp\htdocs\WebServersAndroid\includes\DbOperations.php中调用布尔值上的成员函数bind_param()。php:24堆栈跟踪:#0 C:\xampp\htdocs\WebServersAndroid\v1\registerUser.php(12):DbOperation->createUser('syed',1997')#1{main}在第24行的C:\xampp\htdocs\WebServersAndroid\includes\DbOperations.php中抛出

bind_param中出现错误,可能是因为没有可存储数据的查询。请告诉我是什么问题,以及为什么$stmt为空。非常感谢。
    class DbOperation{

        private $con;

        function __construct(){

            require_once dirname(__FILE__).'/DbConnect.php';

            $db = new DbConnect();

            $this->con = $db->connect();

        }


        function createUser($name,$usn){

        $query = "INSERT INTO 'test_col'('name','usn') VALUES (?,?); ";
        $stmt = $this->con->prepare($query);
        echo $stmt;
        if($stmt != null)
        {
            $stmt->bind_param("ss",$name,$usn);
        if($stmt -> execute())
        {
            return true;
        }else{
            return false;
        }

        }
        else{
            echo "in else";
        }

    }
    }

我认为这段代码会产生很多错误

$query=“插入到'test_col'('name','usn')值(?,);”

值(?,)
要求稍后绑定2个值

而这个代码

`$stmt->bind_param("ss",$name,$usn);`
绑定触发绑定错误的3个参数

接下来,MySQL将单引号/双引号的使用解释为字符串文字,如前所述


因此,
'test\u col'('name','usn')
会导致错误,您应该使用`或只保留表和列的名称,而不是使用单引号(),它将表名、数据库名和/或列名转换为字符串而不是引用。

查询中的
'
应该是反勾号(
`
)“$stmt变量为空”谢谢你,我建议你阅读文档。OP没有绑定三个参数。我很糟糕,我应该读一下。
    class DbOperation{

        private $con;

        function __construct(){

            require_once dirname(__FILE__).'/DbConnect.php';

            $db = new DbConnect();

            $this->con = $db->connect();

        }


        function createUser($name,$usn){

        $query = "INSERT INTO 'test_col'('name','usn') VALUES (?,?); ";
        $stmt = $this->con->prepare($query);
        echo $stmt;
        if($stmt != null)
        {
            $stmt->bind_param("ss",$name,$usn);
        if($stmt -> execute())
        {
            return true;
        }else{
            return false;
        }

        }
        else{
            echo "in else";
        }

    }
    }