Il problema del confronto tra stringhe va risolto opportunamente a seconda che il confronto sia fatto nella query, quindi affidato a MySQL, oppure nello script PHP.
In uno script PHP il normale confronto tra script è case sensitive. Per una conferma basta provare questo script:
<?php
$string = 'test';
if($string == 'Test') {
echo 'uguali';
}
else {
echo 'diverse';
}
?>
In una query MySQL la cosa è più complicata. In generale il confronto dipende dalla "collation" associata al campo che si sta confrontando. Se il nome della collation termina con "_ci" allora il confronto è "case insensitive". E' comunque possibile modificare la collation limittamente ad una query specificandone il nome:
[tt]SELECT * FROM utenti WHERE nome = 'test' COLLATE latin1_general_cs[/tt]
Un altro modo per forzare un confronto case sensitive consiste nel fare un confronto "binario" tra le stringhe:
[tt]SELECT * FROM utenti WHERE BINARY nome = 'test'[/tt]
:bye: