Php 不工作状态不工作

Php 不工作状态不工作,php,mysql,Php,Mysql,我有一个mysql表,其中有一个列jazyk_en,该列的值在正确的行中 仅当没有值9时,我需要执行if操作,因此我使用以下方法: if ($_POST['jazyk'] == 'en' AND $jaz !== '9'){ mysql_query("UPDATE user SET jazyk='en' where name='".$username."'"); } 当我通过echo显示$jaz时,它确实显示了9,但是mysql仍然被更新,即使我添加了$jaz!='9' 我甚至尝试了

我有一个mysql表,其中有一个列jazyk_en,该列的值在正确的行中

仅当没有值
9
时,我需要执行if操作,因此我使用以下方法:

if ($_POST['jazyk'] == 'en' AND $jaz !== '9'){ 
    mysql_query("UPDATE user SET jazyk='en' where name='".$username."'");
}
当我通过
echo
显示
$jaz
时,它确实显示了
9
,但是mysql仍然被更新,即使我添加了
$jaz!='9'

我甚至尝试了
$jaz<5
,这对我也很有用。仍然不起作用

我现在真的很绝望,因为我不明白为什么它不能正常工作

你知道问题出在哪里吗


谢谢大家!

…和$jaz!='9’…
仅使用单个
=
,而与
不相等的
匹配=

不要使用
echo
调试php代码,而是使用
var\u dump

它允许您显示变量的类型

试一试

并向我们展示结果

==
检查值是否相同,但检查类型是否相同。
=
只检查值,不检查类型

示例:

'9' == 9 //true
'9' === 9 //false

尝试使用下面的编辑并告诉我哪个
列是
值“9”
到目前为止,我假设
值“9”
是一个
id
,PS:您需要显示更多代码,
$jaz
$username
来自哪里:

if ($_POST['jazyk'] == 'en' && $jaz != '9'){ 
    mysql_query("UPDATE user SET jazyk='en' where name='".$username."' AND id != '$jaz'");
}

谢谢,但还是不行。我使用了许多组合,但没有一个有效。尝试分配一些新值并测试执行,如
$jaz=8和测试。当我直接在代码中键入它时,它就工作了,但是当我从数据库中获取
$jaz
时,它就不工作了。
==
是PHP语法。您正在使用MySQL。两种不同的动物。它的列类型是什么?“带有一个列
jazyk_en
”,并且您正在使用
SET jazyk='en'
$jazykaktivni\u q=mysql\u查询(“选择*来自用户名=“$username.”)$jazykaktivni=mysql_fetch_数组($jazykaktivni_q)$jaz=$jazykaktivni['jazyk_en']这是代码。列类型为varchar,但我也尝试更改为另一种类型。仍然不工作。是的,
jazyk_en
jazyk
是两个不同的列。我现在不需要与jazyk一起工作。我很难理解你的方法。如果($\u POST['jazyk']='en'和$jaz!='9')
,则此部分不清楚。如果要检查列是否不等于某个数字,则首先需要在SELECT查询中使用该数字。您在下面写道“但是当我从数据库中获得$jaz时,它不起作用。”您需要向我们展示与此相关的代码。它显示
string(1)“9”
,这就是为什么您的比较是正确的(请参阅我的帖子)$jaz`是一个包含字符'9'的字符串,该字符是字符串而不是整数。所以$jaz不同于9(整数)<代码>'9'!==9//true
。所以你应该试试:
$jaz!=9
不带引号
if ($_POST['jazyk'] == 'en' && $jaz != '9'){ 
    mysql_query("UPDATE user SET jazyk='en' where name='".$username."' AND id != '$jaz'");
}