Php 错误:“警告:mysqli\u stmt\u bind\u param()”

Php 错误:“警告:mysqli\u stmt\u bind\u param()”,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我想在我的网站上添加一个会员计划:推荐使用手机访问 你会发现该网站工作正常,但现在检查错误弹出窗口 错误:“警告:mysqli\u stmt\u bind\u参数:变量数不正确。” 匹配第12行“已准备语句”中的参数数 mobile.php代码: <?php session_start(); require_once "config.php"; $affiliate = ""; if ($_SERVER["REQUEST_METHOD"] == "GET") { $affili

我想在我的网站上添加一个会员计划:推荐使用手机访问 你会发现该网站工作正常,但现在检查错误弹出窗口

错误:“警告:mysqli\u stmt\u bind\u参数:变量数不正确。” 匹配第12行“已准备语句”中的参数数

mobile.php代码:

<?php

session_start();
require_once "config.php";
$affiliate = "";

if ($_SERVER["REQUEST_METHOD"] == "GET") {
    $affiliate = $_GET['affiliate'];
    $sql = "SELECT id, affiliate, click, signup FROM users WHERE affiliate = $affiliate";
    if ($stmt = mysqli_prepare($link, $sql)) {
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, "ssss", $param_id, $param_affiliate, $param_click, $param_signup);

        // Set parameters
        $param_affiliate = $affiliate;

        // Attempt to execute the prepared statement
        if (mysqli_stmt_execute($stmt)) {
            // Store result
            mysqli_stmt_store_result($stmt);

            // Check if affiliate exists
            if (mysqli_stmt_num_rows($stmt) == 1) {
                // Bind result variables
                mysqli_stmt_bind_result($stmt, $id, $affiliate, $click, $signup);
                mysqli_query("UPDATE users SET click = click + 1 WHERE affiliate = $affiliate");
                session_start();

                // Store data in session variables
                $_SESSION['affiliate'] = $affiliate;
            }
        }
    }
}
$\会话['affiliate']用于跟踪附属链接。 mysqli_queryUPDATE users SET click=click+1,其中affiliate=$affiliate用于在有人单击关联链接时添加1次单击


如何解决此错误?

通常为字符串或s:

    mysqli_stmt_bind_param($stmt, "ssss", $param_id, $param_affiliate, $param_click, $param_signup);
如果是数字等,则可以返回假值。您应该使用i表示numbric值

    mysqli_stmt_bind_param($stmt, "isss", $param_id, $param_affiliate, $param_click, $param_signup);

我觉得第一个结果id是number

确保所有4个参数都使用字符串类型。例如,如果$param_id是一个整数而不是字符串,那么第二个类型参数应该是isss而不是ssss:您的语句不包含任何占位符,更不用说其中的四个了。我不确定您认为绑定的参数是什么。抱歉,它不起作用!你不需要使用isss!我不知道你的其他价值观。您应该使用i表示数字,使用s表示注释@HosteyMega