#php #mysql
#php #mysql
Вопрос:
мне интересно, как я могу добавить целое число, которое я назначил в переменной, в столбец таблицы mysql, используя INSERT.
это мой код:
//Connect to database
include ("connnect.php");
$countv = "10"
$insert = ("INSERT INTO table1 (id,count) VALUES ('$id', $countv)";
mysql_query($insert) or die(mysql_error());
столбец count имеет значение int, а значение по умолчанию равно ‘0’
Обычно я добавляю 10, используя 10 , но теперь я хочу попробовать добавить его через переменную. поэтому я установил столбец «count» для добавления промежуточного значения $ countv.
этот скрипт может добавить 10 к количеству столбцов, но когда я пытаюсь это сделать во второй раз (который использует UPDATE table1 SET count = $countv ГДЕ id =’123′), он по-прежнему остается равным 10. есть ли какие-либо ошибки, которые я делаю, или есть лучший способ сделать это?
Сценарий обновления
mysql_query("UPDATE table1 SET count = $countv WHERE id='123'")
or die(mysql_error());
Спасибо и хорошего дня.
(РЕШАЕМАЯ ПРОБЛЕМА: я забыл добавить счетчик перед $counttv в сценарии обновления. спасибо тем, кто помогает)
Комментарии:
1. Что вы увеличиваете? Поскольку вы добавляете новую строку (которая по умолчанию будет иметь значение 0), кажется логичным, что результат будет 10 каждый раз. Если вы сделаете обновление, оно должно быть лучше.
2. извините, я забыл добавить в скрипт обновления, только что отредактированный
Ответ №1:
попробуйте этот синтаксис
update table1 set count = count $countv where id = '123'
Ответ №2:
вы можете сделать это двумя способами: — сначала получить значение, обновить его с помощью php и записать обратно в таблицу mysql — или простой sql-запрос: ОБНОВИТЬ leaderb УСТАНОВИТЬ count = count 10 ГДЕ ….
поскольку вы вставляете в mysql, у вас там нет начального значения. поэтому вы должны использовать update для изменения существующей строки / записи.
Комментарии:
1. Обычно я добавляю 10, используя 10, как вы сказали, но теперь я хочу попробовать добавить его через переменную. поэтому я установил столбец «count» для добавления промежуточного значения $ countv.
Ответ №3:
Ваш запрос на обновление должен быть:
$query ="UPDATE table1 `count` = `count` $countv WHERE id=123";
Имейте в виду, count — это зарезервированное слово в MySQL, поэтому оно должно быть в обратных значках
Ответ №4:
я понятия не имею, как это работает для вас, поскольку вы добавляете имена ‘$ id’ и ‘$ countv’ вместо их значений.
я думаю, вам следует поменять это местами:
$insert = "INSERT INTO table1 (id,count) VALUES ('$id', $countv)";
с:
$insert = "INSERT INTO table1 (id,count) VALUES ('$id', " . $countv . ")";
если id также является php int (я предполагаю, что так), вам нужно:
$insert = "INSERT INTO table1 (id,count) VALUES ('" . $id . "', " . $countv . ")";
расскажите мне, как все прошло 🙂
Ответ №5:
Это потому, что вы каждый раз заменяете значение на 10. Программа не знает число, которое находится в базе данных.
Сначала вам нужно извлечь данные, обновить значение, а затем поместить его обратно в базу данных
Ответ №6:
Попробуй это:
UPDATE table1 SET count = count $countv WHERE id = '123'