MySQL select b'1 'gibt abhängig von der Umgebung Integer 1 oder ASCII 1 zurück

8

Auf meinem Heimcomputer,

mysql_fetch_row( mysql_query(" select b'1' ") )[0]

gibt die Zeichenfolge "1" zurück.

Aber wenn es auf Webserver gehostet wird, gibt es eine Zeichenfolge mit dem ASCII-Zeichen 1 zurück.

Doc sagt -

  

Bitwerte werden als Binärwerte zurückgegeben. Um sie druckbar anzuzeigen   form, füge 0 hinzu oder verwende eine Konvertierungsfunktion wie BIN ().

Aber auf meinem lokalen Rechner gibt es immer noch "1" zurück, ohne dass eine Konvertierung von mir vorgenommen wurde.

Wie kann ich das gleiche Verhalten auf meinem Webserver haben?

Wenn ich das gleiche Verhalten bekomme, muss ich meine PHP-Codes nicht von like

konvertieren %Vor%

bis

%Vor%

wobei bit1_field vom Typ bit(1) ist.

    
gom 04.07.2013, 06:36
quelle

1 Antwort

2

Es scheint, dass Sie zwei verschiedene Treiber auf den Maschinen verwenden. Es gibt zwei, php5-mysqlnd und php5-mysql . Website-Faktor schrieb über die anderes Verhalten für BIT-Feld Ende April und ich habe auch mehrere Maschinen mit der gleichen Version, aber verschiedene Laufwerke. Wahrscheinlich liegt es daran, dass der Treiber beim Upgrade von einer früheren Version nicht geändert wird, aber wenn php & gt; 5.4 installiert ist, wird er standardmäßig mit php5-mysqlnd installiert. Hier ist die MySQL-Seite über die Unterschiede .

    
Sylwester 04.07.2013, 12:19
quelle

Tags und Links