Попытка понять bind_param (не может редактировать переменные, иначе ничего не сохранится) - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь заставить эту часть кода работать. 1. Я не понимаю, что такое "сси". 2. Если я хочу только имя и удалить фамилию в обоих местах, код больше не будет работать. это почему?

Итак, выполнив второй шаг, я не могу редактировать и корректировать свой код. Я только хочу, чтобы там было имя, а не фамилия, но это не сработает, если я удалю переменные фамилии. Не могу понять почему? Вы можете мне помочь.

Спасибо за ваше время

if ($stmt = $mysqli->prepare("UPDATE players SET firstname = ?, lastname = ?
WHERE id=?"))
{
$stmt->bind_param("ssi", $firstname, $lastname, $id);
$stmt->execute();
$stmt->close();
}

1 Ответ

0 голосов
/ 08 сентября 2018

Первый аргумент (в вашем случае "ssi") - это строка формата, которая сообщает bind_param, какие типы аргументов связаны с ним. «s» означает «строка», а «i» означает «целое число». Здесь у вас есть серия, состоящая из двух строк (имя и фамилия), за которыми следует целое число (идентификатор).

Если вы хотите удалить фамилию, вы должны удалить ее из предложения set, удалить связанную переменную и удалить соответствующие "s" из строки формата:

if ($stmt = $mysqli->prepare("UPDATE players SET firstname = ? WHERE id = ?"))
# Updating lastname was removed here -------------------------^
{
    $stmt->bind_param("si", $firstname, $id);
    # s removed --------^
    # $lastname remoed ----------------^

    $stmt->execute();
    $stmt->close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...