我怎样才能把“变成”到“varchar"在mySQL数据库中没有问题的php代码


How can I change "int" into "varchar" in mySQL database without problems in php code?

我有一个问题,我不知道如何解决。这是我的代码:

    $sql_current_animal = "SELECT orders.animal, farm.capacity  FROM orders LEFT JOIN farm ON orders.animal=farm.serial WHERE orders.id ='$id';";   
    foreach ($pdo->query($sql_current_animal) as $current_animal_row) {
        $current_animal = $current_animal_row['animal'];
        $capacity_animal_arr[$current_animal] = $current_animal_row['capacity'];
    }

capacity的类型在我的数据库int(11)中。在这种情况下,我的代码运行得非常好。但现在我需要将capacity的类型更改为varchar(225)。我的数据库中仍然有相同的capacity值(例如:2),但我的代码不再工作了。真正发生的是,我的页面上的所有内容都显示到这一行,在这之后我的页面是空白的。

问题一定在这一行:$capacity_animal_arr[$current_animal] = $current_animal_row['capacity'];,因为当我删除这一行时,所有内容都再次显示在页面上。

脚本的其余部分可能期望capacity为Integer类型。尝试将PHP中的值转换为int。方法如下:

$capacity_animal_arr[$current_animal] = intval($current_animal_row['capacity']);

请确认是否适合您。

首先在$capacity_animal_arr[$current_animal] = $current_animal_row['capacity']行前回显$current_animal_row['capacity']和$current_animal_row['animal']的值。如果你能得到正确的容量和动物的值,那么问题不在数据库。