У меня есть поле в таблице opt с именем confirm типа tinyint. Я хочу вставить значение (1) с помощью этого оператора, но он не работает, может ли кто-нибудь помочь?
$connect= mysql_connect("localhost","root") or die ("Sorry, Can not connect to database");
mysql_select_db("login") or die (mysql_error());
$user=$_POST['staff'];
echo $user;
$query = "SELECT * from users where username='$user' ";
$result=mysql_query($query,$connect) or die(mysql_error());
$row=mysql_fetch_array($result);
$uid=$row['userid'];
echo $uid;
$query = "SELECT * from opt where userid='$uid' ";
$result=mysql_query($query,$connect) or die(mysql_error());
$row=mysql_fetch_array($result);
if ($row['confirm']==0)
{
$query = "INSERT INTO opt (confirm) values(1)";
echo 'The user selected options has confirmed';
}
?>
сообщений об ошибках нет, но (1) не вставлено
Это дубликат stackoverflow.com/questions/460997/insert-into-mysql-problem. Отредактируйте этот вопрос, если хотите добавить дополнительную информацию.
ваш код небезопасен: у всех есть полный контроль над вашей базой данных






Вы не выполняете запрос.
Последний запрос остается невыполненным
$ query - это переменная, и нет никаких причин, по которым она может вызвать волшебную вставку записи в таблицу opt.
Вам нужно вставить следующую строку после $ query = "...":
mysql_query($query);
Кроме того, я надеюсь, что это не тот код, который вы используете в продакшене.
Где-то нужно иметь следующее:
$user = mysql_real_escape_string($user);
добавить дополнительный
$ result = mysql_query ($ query, $ connect) или умереть (mysql_error ());
после линии
$ query = "ВСТАВИТЬ В значения opt (подтвердить) (1)";
Помимо невыполнения «ВСТАВИТЬ ЗАЯВЛЕНИЕ»,
Вам, вероятно, следует использовать
"UPDATE OPT SET CONFIRM = '1' WHERE USERID = $user;"
поскольку строка уже существует (потому что вам удалось ее выбрать!).
Почему не работает? какая ошибка выкидывает?
Проверьте остальные поля таблицы ...
Какое сообщение об ошибке вы получаете, если оно есть?