2012-04-04 6 views
1

Lange Zeit Leser - neues Plakat ... Hier ist eine, die ich brauche ein wenig Einblick mit.Beste Vergleichsoperator bei der Verwendung von COUNT in MySQL Abfrage

Eine mysqli Abfrage und COUNTing der Ergebnisse, gibt es einen bevorzugten Vergleichsoperator & Zeichenkette enquoting zu verwenden?

Zum Beispiel

$query = mysqli_query($connect, "SELECT COUNT(`user_id`) FROM `users` WHERE `user_color` = '{$color}'"); 
$result = mysqli_fetch_assoc($query); 
if ($result['COUNT(`user_id`)'] != 0){ 
-- then do something.... 

Meine Frage ist, was sind die Auswirkungen der Verwendung:

if ($result['COUNT(`user_id`)'] != '0'){ 

gegen

if ($result['COUNT(`user_id`)'] != 0){ 

Tim

Antwort

0

Beide sind gleich, php kümmert sich um String und Nummer.

Interne Funktionalität von PHP-Interpreter: Wenn Sie eine Zahl mit einer Zeichenfolge vergleichen oder wenn der Vergleich numerische Zeichenfolgen enthält, wird jede Zeichenfolge in eine Zahl konvertiert und der Vergleich numerisch durchgeführt.

+0

Danke, das ist, was ich dachte, eine kleine Bestätigung macht immer Ihren Code warm und unscharf fühlen ... – Tim

1

Meine Präferenz wäre:

... "SELECT COUNT(`user_id`) as user_count ..." ... 

if ($result['user_count']) 

0 und '0' sind beide false in PHP, so dass dies tut, was Sie für sehr prägnant suchen.

+0

Ich * wusste * über den falschen Wert, dachte nur nie daran, es in diesem Sinne zu verwenden. Eigentlich habe ich gerade dieses Chuck des Codes gepackt, einige andere, die ich benutze, vergleichen * etwas *. Vielen Dank. – Tim

0

Werfen Sie einen Blick auf: Comparison Operators

<?php 

0=='0'; // true 
0==='0' // false 

0!='0'; // false 
0!=='0'; // true 

?> 

in Ihrem Fall spielt es keine Rolle, da Sie nur eine =

+0

danke. Aber ich denke, dass Deceze und Madan die Ablenkung von dem, was ich dachte, aufgefangen haben. Es war mehr, was ** $ result ['COUNT ('user_id')'] ** ** lieber vergleicht. – Tim

0

Verwendung mysqli_fetch_row statt mysqli_fetch_assoc verwenden.

$result = mysqli_fetch_row($query); 
if ($result[0] != 0){ 
    // your code 
}