Php 不工作状态不工作
我有一个mysql表,其中有一个列jazyk_en,该列的值在正确的行中 仅当没有值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' 我甚至尝试了
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'");
}