Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP PDO Bit(1) zwraca niewłaściwy typ danych

Używasz pola Bit(1) do reprezentowania wartości logicznej (TRUE /FALSE ).

Klient bazy danych mapuje pola bitowe (które mogą być większe niż jeden bit) na łańcuchy, w których jeden znak reprezentuje oktet.

Możesz użyć pola Bit(1) jako ciągu PHP za pomocą ord() działa, ponieważ traktuje ciąg jako pojedynczy oktet:

if (ord($Site_Approved)) {
     ...
}

Nie możesz użyć $Site_Approved bezpośrednio, ponieważ jest to ciąg znaków i zawsze będzie miał wartość TRUE niezależnie od tego, czy jest ustawiony pierwszy bit, czy nie.

Alternatywnie możesz rzutować wartość bazy danych w zapytaniu SQL już na ułamek dziesiętny, co może być tym, czego szukasz:

s.Site_Approved+0 AS Site_Approved

Wartości dziesiętne w zakresie od 0 do 1 zachowują się bardzo podobnie do wartości logicznych PHP (po prostu nie mają tego samego typu, reszta jest taka sama).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nieprawidłowa wartość DateTime '0000-00-00 00:00:00' — Date_Sub() w posiadaniu

  2. SQL Jak zsumować z innej tabeli i wstawić do innej tabeli

  3. Konwersja z Microsoft SQL Server do MySQL

  4. Wstawione, usunięte tabele (magiczne tabele) w MySQL

  5. Nie można uzyskać dostępu do Amazon RDS za pomocą Eclipse