ArgumentCountError с переменными привязкиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 ArgumentCountError с переменными привязки

Сообщение Anonymous »

Вот сообщение об ошибке, которое я получаю: Неустранимая ошибка: Uncaught ArgumentCountError: Количество элементов в строке определения типа должно совпадать с количеством переменных связывания в /home/fighters/test.fighterspalace.com/mob1.php: 309 Трассировка стека: #0 /home/fighters/test.fighterspalace.com/mob1.php(309): mysqli_stmt->bind_param() #1 {main} добавлено в /home/fighters/test.fighterspalace.com/mob1. php в строке 309Вот код:

Код: Выделить всё

if (isset($_GET['accept'])) {
$accept_id = $mysqli->real_escape_string($_GET['accept']);
$mob = fetchMob($accept_id, $mysqli);
$quest = fetchQuest($accept_id, $mysqli);

if ($mob && $quest) {
if ($mob['type'] != 'Q') {
echo "This is not a quest mob!";
exit;
}

// Ensure the quest can only be accepted once at a time
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM quest_log WHERE quest_id = ? AND user_id = ? AND status != 'complete'");
$stmt->bind_param("ii", $quest['id'], $stat['id']);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close();

if ($count > 0) {
echo "You've already accepted this quest.";
echo "";
echo "[url=https://test.fighterspalace.com/World.php]LEAVE[/url]";
echo "";
exit;
}

// Check if the quest can be done again
if ($quest['max'] != 0) {
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM quest_log WHERE quest_id = ? AND user_id = ?");
$stmt->bind_param("ii", $quest['id'], $stat['id']);
$stmt->execute();
$stmt->bind_result($total_count);
$stmt->fetch();
$stmt->close();
if ($total_count >= $quest['max']) {
echo "You cannot do this quest again.";
echo "";
echo "[url=https://test.fighterspalace.com/World.php]LEAVE[/url]";
echo "";
exit;
}
}

$tasks = fetchTasks($quest['id'], $mysqli);

// Check if there are any tasks
if (empty($tasks)) {
echo "This quest has no tasks defined.";
exit;
}

$first_task = $tasks[0];

$stmt = $mysqli->prepare("
INSERT INTO quest_log (
user_id, quest_id, current_task_id,
kills_remaining1, kill_name1,
kills_remaining2, kill_name2,
kills_remaining3, kill_name3,
kills_remaining4, kill_name4,
kills_remaining5, kill_name5,
kills_remaining6, kill_name6,
kills_remaining7, kill_name7,
kills_remaining8, kill_name8
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
");

$stmt->bind_param(
"iiiisissississississi",
$stat['id'],
$quest['id'],
$first_task['id'],
$first_task['kills_needed1'],
$first_task['kill_name1'],
$first_task['kills_needed2'],
$first_task['kill_name2'],
$first_task['kills_needed3'],
$first_task['kill_name3'],
$first_task['kills_needed4'],
$first_task['kill_name4'],
$first_task['kills_needed5'],
$first_task['kill_name5'],
$first_task['kills_needed6'],
$first_task['kill_name6'],
$first_task['kills_needed7'],
$first_task['kill_name7'],
$first_task['kills_needed8'],
$first_task['kill_name8']
);

if ($stmt->execute()) {
echo "
{$mob['name']}[/b][b]                {$quest['description']}
First Task: {$first_task['description']}
";

for ($i = 1; $i  0 &&  !empty($first_task["kill_name{$i}"])) {
echo "I need you to kill {$first_task["kills_needed{$i}"]} {$first_task["kill_name{$i}"]}'s!

[/b]";
}
}

for ($i = 1; $i error;
}
} else {
echo "Invalid accept ID.";
}
exit;
}
Я попробовал несколько вариантов и продолжаю получать ту же ошибку, не знаю, что происходит

Подробнее здесь: https://stackoverflow.com/questions/788 ... -variables
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»