PHP获取字符串“true”或“false”并将它们转换为1或0

时间:2014-02-07 11:22:32

标签: php mysql

我是一名Android开发人员,我主要使用Java,但由于我在PHP中开发自己的原始API,我在这里苦苦挣扎。

当用户在他们的集合中添加一个新项目时,我在MySQL数据库中有这三个布尔值:

  • item_is_gift
  • item_condition_new
  • item_bought_from_place

在我的Java代码中,我发送了这些字符串值 - truefalse

将它们插入MySQL时,我必须相应地将它们转换为10,但我似乎无法这样做

这是我的代码:

$item_is_gift           = $_POST['item_is_gift'];
$item_condition_new     = $_POST['item_condition_new'];
$item_bought_from_place = $_POST['item_bought_from_place'];

if($item_is_gift = true){
    $item_is_gift = 1;
} else {
    $item_is_gift = 0;
    $item_price = 0;
}

if($item_condition_new = true) {
    $item_condition_new = 1;
} else {
    $item_condition_new = 0;
}

if($item_bought_from_place = true) {
    $item_bought_from_place = 1;
    $item_bought_from_user = 0;
}

当我查看数据库记录时,所有这些记录总是说1

5 个答案:

答案 0 :(得分:4)

在“if”中设置变量:

if($item_is_gift = true){

但你想要的是比较它们。您可以使用以下方式执行此操作:

if($item_is_gift == true){

或与:

if($item_is_gift === true){

The PHP manual有更多关于差异的信息。

此外,您想要与字符串进行比较。所以你必须这样写:

if($item_is_gift == 'true'){

答案 1 :(得分:2)

您收到的字符串值为 false true 。要检查使用比较运算符==,而不是=(这是赋值运算符)。并比较 strings ...您将布尔值与字符串进行比较:

if ($item_condition_new == 'true')

是你真正追求的。您还应该检查$_POST数组中的键是否确实存在:

if (isset($_POST['item_condition_new']))
    $item_condition_new     = $_POST['item_condition_new'];

避免通知。同时处理输入更加人性化:删除尾随/前导空格并接受大写和小写字符:

$item_condition_new = trim($item_condition_new);//remove excess white-space
$item_condition_new = strtolower($item_condition_new);//make all lower-case

然后,你可以这样做:

if ($item_condition_new == 'true')
{
    $item_condition_new = 1;
}
else
{
    $item_condition_new = 0;
}

更短的方法是使用三元运算符(但要小心!):

$item_condition_new = $item_condition_new == 'true' ? 1 : 0;

答案 2 :(得分:1)

啊哈!

您使用的是“=”而不是“==”。

给它一个去..

if($item_condition_new == true) {
    $item_condition_new = 1;
} else {
    $item_condition_new = 0;
}

答案 3 :(得分:0)

试试这个:

$item_is_gift = isset($_POST['item_is_gift']) && $_POST['item_is_gift'] == 'true'? 1 : 0;
// and so on...

答案 4 :(得分:0)

你在if的条件下失败了。您正在分配而不是比较......

if($item_is_gift == true){
...
if($item_condition_new == true) {
...
if($item_bought_from_place == true) {