Php Mysqli准备的语句获取\u数组

Php Mysqli准备的语句获取\u数组,php,prepared-statement,Php,Prepared Statement,我试图让下面的代码工作,但它不工作,给我下面的错误 Fatal error: Call to a member function bind_param() on a non-object in 有没有办法用准备好的语句获取数组 if (move_uploaded_file($_FILES['file_to_upload']['tmp_name'], $final_uploads_location)) { $stmt =

我试图让下面的代码工作,但它不工作,给我下面的错误

Fatal error: Call to a member function bind_param() on a non-object in 
有没有办法用准备好的语句获取数组

    if (move_uploaded_file($_FILES['file_to_upload']['tmp_name'], $final_uploads_location)) 
            {
                    $stmt = $mysqli->prepare("select * from test  where `username` = ? and `age` = ? ");
                    $stmt->bind_param('ss', $username, $age);
                    $stmt->store_result();
                    $stmt->execute();

                    if($stmt->num_rows < 1)
                {
                    $insert = $mysqli->prepare("insert into `test`(`username`, `age`, ) values(?,?)");
                    $insert->bind_param('ss', $username, $age);
                    $insert->execute();

                }
                else
                {
                    $check = mysqli_fetch_array($stmt);
                     global $identity;
                    }
            }
if(移动上传的文件($上传文件['file\u to\u upload']['tmp\u name'],$final\u uploads\u位置))
{
$stmt=$mysqli->prepare(“从测试中选择*,其中`username`=?和`age`=?”;
$stmt->bind_参数('ss',$username,$age);
$stmt->store_result();
$stmt->execute();
如果($stmt->num_行<1)
{
$insert=$mysqli->prepare(“插入到'test'('username','age',)值(?,)”;
$insert->bind_参数('ss',$username,$age);
$insert->execute();
}
其他的
{
$check=mysqli\u fetch\u数组($stmt);
全球美元身份;
}
}

您在准备()后查询return false。这意味着您的查询有错误:未定义的字段、不存在的表或其他内容。

尝试在数据库上执行精确的查询。 我认为这是给你一个数据库错误

可能您的$mysqli->prepare返回了一个“False”值。 这样,您就可以尝试在不存在的布尔数据类型上调用“bind_param”函数。

$stmt->bind_param(“s”,$username)

一次只尝试一个。。。您可以一个接一个地绑定每个语句。 然后执行查询


看这里

好吧,但即使我用它来工作,mysqli_fetch_数组也会有麻烦。如何使用准备好的语句获取数组?@MarkLubo,查询后探索