我有一个奇怪的情况,只有错误状态保存到数据库中。当“状态”应该为 true 时,我的查询仍然执行 false。
我有具有此功能的 Controller
public function change_active_state_post()
{
$id['id_location'] = $this->input->post('id_location');
$state['active'] = $this->input->post('state');
var_dump($state['active']);
$this->locations->update($state, $id);
}
这是MY_Model更新函数
function update($data,$conditions,$tablename=""){
if($tablename=="")
$tablename = $this->table;
$this->db->where($conditions);
$this->db->update($tablename,$data);
var_dump($this->db->last_query());
return $this->db->affected_rows();
}
当我请求停用位置时,我的日志中会收到以下数据,并且数据库已正确更新
Location.php:196:string 'false' (length=5)
MY_model.php:46:string 'UPDATE `Locations` SET `active` = 'false'
WHERE `id_location` = '2'' (length=67)
但是当我请求激活位置时,我在日志中收到以下数据,并且数据库值未更新
Location.php:196:string 'true' (length=4)
MY_model.php:46:string 'UPDATE `Locations` SET `active` = 'true'
WHERE `id_location` = '2'' (length=66)
问题是事件列永远不会更新为值 1 或 true。它保持为 0,但如果我不想将其从 1 变为 0,它将始终有效。
数据库中的事件列类型为tinyint(1)
如果您需要任何其他信息,请告诉我,我将提供:提前谢谢您
làm mới
这项额外检查帮助我正确插入数据
if($this->input->post('state') == 'true'){
$state['active'] = true;
}khác{
$state['active'] = false;
}
1 Câu trả lời
这里'ĐÚNG VẬY'
被引用,因此它被作为字符串插入:
MY_model.php:46:string 'UPDATE `Locations` SET `active` = 'true'
在 MySQL 中,两个字符串 'ĐÚNG VẬY'
Và'false'
转换为0
当放入tinyint(1)
时列,因为两者都不是正确的数值。
使用值 0
Và1
将工作。 MySQL还定义了常量FALSE
( 0
) 和 TRUE
( 1
),因此只要您将它们不加引号插入而不是作为字符串插入,它们也将起作用。
关于php - 代码仅更新数据库中的 false 值,但不更新 true 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38803409/
Tôi đang chạy PHP trong một tệp JavaScript, như... var = '';). Tôi cần sử dụng JavaScript để quét chuỗi để tìm các ký tự phân cách PHP (mở và đóng PHP). Tôi đã biết cách rồi
Tôi muốn có thể làm điều gì đó như thế này: php --determine-oldest-supported-php-version test.php và nhận được kết quả đầu ra này: 7.2 Nghĩa là nhị phân php được kiểm tra theo thử nghiệm.
Tôi đang phát triển một trang web php lớn hiện không sử dụng bất kỳ framework nào. Câu hỏi lớn của tôi là, liệu có nên thử tích hợp dần dần khung vào ứng dụng theo thời gian, chẳng hạn như tạo các tiện ích mới và cập nhật các tiện ích cũ không? Ví dụ, tất cả các trang đều được phục vụ trực tiếp thông qua URL.
Dưới đây là mã nguồn của tôi, tôi muốn sử dụng biến $r1 nằm trong tập lệnh php ở cuối trong một tập lệnh php khác ở đầu cùng một trang. Tôi cần một giải pháp đơn giản cho vấn đề này. Tôi muốn sử dụng biến đó trong truy vấn cập nhật có trong mã. $tên)
Tôi đang tạo một trang web thực hiện nhiều chuyển hướng PHP tùy thuộc vào các tình huống khác nhau. Giống như thế này... header("Location: somesite.com/redirectedpage.php"); để bảo mật