Предисловие. Просьба передать мой ответ целиком, а не только код.
- Обратитесь к «Сноскам» для испытанного/рабочего примера.
Кроме опечатка для CONACT
, вам необходимо удалить кавычки и запятые.
Вы передаете литеральную строку при использовании кавычек для функции.
UPDATE login SET projects='CONACT(projects, '$id,')' WHERE username='$name'
^ ^^
- Проверка на наличие ошибок в запросе, произвел бы нечто подобное следующему с настоящим использованием: (с помощью «1» и «Джон» в качестве примера).
У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «1») «WHERE имя пользователя =„John“» в строке 2
Изменить его читать как:
UPDATE login SET projects = CONCAT(projects, '$id') WHERE username='$name'
или $id
без кавычек, если это действительно целое число.
UPDATE login SET projects = CONCAT(projects, $id) WHERE username='$name'
В зависимости от того, как вы используете ваш запрос через соединение, будет напоминать что-то вроде этого, и как MySQLi метод:
$query = mysqli_query($connection,
"UPDATE login
SET projects = CONCAT(projects, '$id')
WHERE username='$name'")
or die(mysqli_error($connection));
В то время как убедившись, что обе переменные действительно установлены и правильно заселение ,
Если вы используете HTML-форму, убедитесь, что для них есть атрибуты имени и что метод верен.
Ie: <input type="text" name="username">
Если из формы: $name = $_POST['username'];
Plus, так как мы не знаем, которые MySQL API вы используете, чтобы соединиться с, или, если вы успешно установили соединение с базой данных , что вам известно только, так что если вы, великий.
Если нет, то это может означать, что есть ошибки где-то, но вы, вероятно, не проверяете их.
Sidenote: Когда вы сообщите нам «Это не работает», это никому не помогает.
Нам нужно знать точное сообщение об ошибке, если и когда вы будете проверять их.
Вот несколько ссылок, которые вы можете изучить и использовать метод проверки ошибок в соответствии с вашим API-интерфейсом MySQL.
Сообщения об ошибках: http://php.net/manual/en/function.error-reporting.php
Смотрите также ссылку, чтобы выбрать MySQL API:
Добавить error reporting в верхней части файла (ов), который поможет найти ошибки.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
Sidenote: Сообщение об ошибках должно выполняться только в стадии постановки и никогда не выпускаться.
Я считаю, что я дал вам достаточно информации. Попробуйте разные методы; вы ничего не сломаете.
Также см эти ссылки на CONCAT
Сноски: (протестировано код)
Следующая работала flawle ssly, как было предложено выше, и используя mysqli_affected_rows()
.
<?php
$DB_HOST = 'xxx'; // Replace
$DB_USER = 'xxx'; // with
$DB_PASS = 'xxx'; // your
$DB_NAME = 'xxx'; // own
$db = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($db->connect_errno > 0) {
die('Connection failed [' . $db->connect_error . ']');
}
$id = 1; // wrap in quotes if it's a string, like "string_1".
$name = "John"; // an example only
$query = mysqli_query($db,
"UPDATE login
SET projects = CONCAT(projects, '$id')
WHERE username='$name'")
or die(mysqli_error($db));
if(mysqli_affected_rows($db)){
echo "Successfully updated the database.";
}
else{
echo "Sorry, check your logs.";
}
Sidenote:
ли это на самом деле говорят «CONACT» вместо «CONCAT»? –
"UPDATE login SET projects = CONCAT (проекты, $ id) WHERE username = $ name"; –
Уверен, он ничего не делает? Уверен, что возникли ошибки – Andrew