Używam obiektu WPDB wewnątrz Wordpress do komunikacji z bazą danych MySQL. Moja baza danych ma kolumnę z typem bit(1)
, jednak Wordpress nie wyodrębnia ich jako 0
lub 1
na moim serwerze produkcyjnym (zrobili to na moim lokalnym komputerze).Klasa bazy danych Wordpress - Bit MySQL
Pytanie:
Jeśli mam wartość bazy danych z Wordpress, nie mogę zrobić prostego porównania do 0
lub 1
:
if ($data[0]->Sold == 1) { //Always false
...
if ($data[0]->Sold == 0) { //Always false
Jak mogę sprawdzić, czy wartość to 0
z 1
?
Tło:
To nie był problem na moim komputerze lokalnym, ale tylko w produkcji.
kwerendy bazy danych tak:
$data = $wpdb->get_results("...");
Kiedy robię var_dump()
na wyniki z bazy danych, tutaj jest wyjście moja przeglądarka pokazuje:
array(1) {
[0] => object(stdClass)#261 (10) {
["SaleID"] => string(4) "1561"
["BookID"] => string(2) "45"
["MerchantID"] => string(1) "1"
["Upload"] => string(19) "2012-11-20 15:46:15"
["Sold"] => string(1) ""
["Price"] => string(1) "5"
["Condition"] => string(1) "5"
["Written"] => string(1) ""
["Comments"] => string(179) "<p>I am the first owner of this barely used book. There aren't any signs of normal wear and tear, not even any creases on the cover or any of its pages. It would pass for new.</p>"
["Expiring"] => string(19) "2013-05-20 15:46:15"
}
}
Wskazówki jak Sold
i Written
pokaż ciąg o rozmiarze 1
, ale nie ma powiązanej wartości. Te wartości powinny być wypełnione odpowiednio 1
i 0
.
Chrome narzędzie Inspektor pokazuje coś całkiem interesujący dla tych wartości:
Co jest \u1
lub \u0
i dlaczego nie są one po prostu 1
lub 0
, więc mogę zrobić porównania?
Dziękuję za poświęcony czas.
Wygląda na to, że wartości nie są ustawione w bazie danych mySQL. Spróbuj zaktualizować wiersze w mySQL. – fredrik
@fredrik Wspomniałem: "Te wartości powinny być wypełnione odpowiednio" 1 "i" 0 "." –
Dobrze '\ u1' i' \ u0' jest treścią, niestety reprezentacją znaków sterujących w unicode. Być może mógłbyś spróbować rzucić je do liczby całkowitej. – feeela