Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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 对非对象调用成员函数bind_param()(无法解决)_Php_Mysqli - Fatal编程技术网

Php 对非对象调用成员函数bind_param()(无法解决)

Php 对非对象调用成员函数bind_param()(无法解决),php,mysqli,Php,Mysqli,上面的代码给了我一个“对非对象的成员函数bind_param()的调用”错误。 我真的不明白为什么我会犯这个错误。我有正确的名字 我是mysqli新手,希望了解如何调试此类错误 我的prepare语句或bind_param()有什么问题 请教我如何调试这种错误 mysqli\u prepare() $mysqli->prepare()可能返回FALSE。编写一个条件来处理这种情况。调用非对象上的成员函数bind_param()意味着您试图调用的$stmt不是对象。为什么它不是一个物体?因为$m

上面的代码给了我一个“对非对象的成员函数bind_param()的调用”错误。 我真的不明白为什么我会犯这个错误。我有正确的名字

我是mysqli新手,希望了解如何调试此类错误

  • 我的prepare语句或bind_param()有什么问题
  • 请教我如何调试这种错误
  • mysqli\u prepare()


    $mysqli->prepare()
    可能返回
    FALSE
    。编写一个条件来处理这种情况。

    调用非对象上的成员函数bind_param()
    意味着您试图调用的
    $stmt
    不是对象。为什么它不是一个物体?因为
    $mysqli->prepare
    没有返回对象。为什么它不返回一个对象

    mysqli\u prepare()
    

    这意味着一定发生了错误。你应该打开,这可能会告诉你,或检查,这可能会告诉你

    $stmt = $mysqli->prepare('select Un from member where Lock = ? and Activated = ?');
    $stmt -> bind_param("ss", 'N', 'Y');//This line gave the error
    $stmt -> execute();
    $stmt->store_result();//apply to prepare statement
    $numRows = $stmt->num_rows;
    
    if ($numRows > 0)//if have result
     while ($row = $stmt->fetch())
    

    在这里,您需要确定数据库中的数据类型。

    Error打开后,它会说“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在“Lock=”和“Activated=”附近使用的正确语法。”我仍然不明白为什么我的SQL是错误的。@Jerry
    Lock
    是一个错误。将字段名放在反勾中以避免这种歧义:
    WHERE`Lock`=…
    Thank=D,但现在有另一个问题“无法通过引用传递参数2”。据我所知,它指的是“Y”?我现在做错了什么?@Jerry参数必须是变量,而不仅仅是文本。如果只是不变的静态文本,您不需要首先绑定这些值,您可以按原样将它们写入查询。
    bind_param()
    需要通过引用传递变量。不能通过引用传递字符串文本。
    $stmt->bind_param("ss", 'N', 'Y');//This line gave the error