PHP – Como fazer consultas utilizando o PDO

Dando continuidade ao post de configuração do PDO que pode ser encontrado aqui.

Primeiro vamos criar uma tabela com algumas informações:

  
CREATE TABLE album (  
  id int(11) NOT NULL auto_increment,
  artist varchar(100) NOT NULL,
  title varchar(100) NOT NULL,
  PRIMARY KEY (id)
);
INSERT INTO album (artist, title)  
    VALUES  ('The  Military  Wives',  'In  My  Dreams');
INSERT INTO album (artist, title)  
    VALUES  ('Adele',  '21');
INSERT INTO album (artist, title)  
    VALUES  ('Bruce  Springsteen',  'Wrecking Ball (Deluxe)');
INSERT INTO album (artist, title)  
    VALUES  ('Lana  Del  Rey',  'Born  To  Die');
INSERT INTO album (artist, title)  
    VALUES  ('Gotye',  'Making  Mirrors');

Agora que você já terminou de criar sua tabela, nós podemos começar a falar de consultas utilizando o pdo.

Tá, mas como eu faço um select utilizando PDO?

Depois de ter criado e adicionado alguns dados em uma tabela do nosso banco de dados, você pode usar uma consulta SELECT, com o método query() do PDO para obter esses dados.
O método query() retorna um conjunto de resultados com os dados retornados pelo MySQL, ou FALSE em caso de erro.

  
exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8

    // Define and perform the SQL SELECT query
    $sql = "SELECT * FROM `album` WHERE `id` IN (4, 5)";
    $resultado = $conn->query($sql);

    // verificamos se a nossa consulta foi executada com sucesso
    if($resultado !== false)
    {
        // Vamos imprimir os nossos resultados
        foreach($resultado as $row) {
            echo $row['id']. ' - '. $row['artist'] . ' - ' . $row['title'] . '
'; } } // Desconectamos do banco $conn = null; } catch(PDOException $e) { // imprimimos a nossa excecao echo $e->getMessage(); } ?>

caso você esteja utilizando a mesma tabela do início do post você verá na tela o seguinte resultado:

4 – Lana Del Rey – Born To Die
5 – Gotye – Making Mirrors

Claro que você também pode utilizar o while para percorrer o resultado, mas, para isso você precisa utilizar o método fetch().

  
exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8

    // Define and perform the SQL SELECT query
    $sql = "SELECT * FROM `album` WHERE `id` IN (4, 5)";
    $resultado = $conn->query($sql);

    // Vamos imprimir os nossos resultados
    while($row = $resultado->fetch()) {
        echo $row['id']. ' - '. $row['artist'] . ' - ' . $row['title'] . '
'; } // Desconecta $conn = null; } catch(PDOException $e) { // imprimimos a nossa excecao echo $e->getMessage(); } ?>

Mas qual é a desse método fetch()?

Ele retorna cada linha do conjunto de resultados, uma após a outra, ou se já não há mais linhas ele nos retorna FALSO. Este método contém várias constantes que determinam o modo para retornar as linhas: Array, Objeto, e etc… Este argumento é utilizado com a seguinte sintaxe:

  
fetch(PDO::FETCH_MODE)  

Agora para você poder visualizar as diferenças entre alguns dos modificadores do tipo de retorno do método fetch(), eu vou exemplificar alguns:

FETCHASSOC
Retorna um array indexado pelo nome da coluna como retornado no conjunto de resultados (similar ao mysql
fetch_assoc).

  
exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8

        // Define and perform the SQL SELECT query
        $sql = "SELECT * FROM `album`";
        $resultado = $conn->query($sql);

        // Vamos imprimir os nossos resultados
        while($row = $resultado->fetch(PDO::FETCH_ASSOC)) {
            echo $row['id']. ' - '. $row['artist'] . ' - ' . $row['title'] . '
'; } // Desconecta $conn = null; } catch(PDOException $e) { // imprimimos a nossa excecao echo $e->getMessage(); } ?>

o resultado do código acima será exibido conforme abaixo:

1 – The Military Wives – In My Dreams
2 – Adele – 21
3 – Bruce Springsteen – Wrecking Ball (Deluxe)
4 – Lana Del Rey – Born To Die
5 – Gotye – Making Mirrors

FETCH_OBJ
Retorna um objeto anônimo com nomes de propriedades que correspondem aos nomes das colunas retornadas no conjunto de resultados.

  
exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8

        // Define and perform the SQL SELECT query
        $sql = "SELECT * FROM `album`";
        $resultado = $conn->query($sql);

        // Vamos imprimir os nossos resultados
        while($row = $resultado->fetch(PDO::FETCH_OBJ)) {
            echo $row->id. ' - '. $row->artist . ' - ' . $row->title . '
'; } // Desconecta $conn = null; } catch(PDOException $e) { // imprimimos a nossa excecao echo $e->getMessage(); } ?>

o resultado do código acima será exibido conforme o codigo anterior, porém, dessa vez como o código acima nos mostra, nós acessamos os valores como um objeto e não mais como um array:

1 – The Military Wives – In My Dreams
2 – Adele – 21
3 – Bruce Springsteen – Wrecking Ball (Deluxe)
4 – Lana Del Rey – Born To Die
5 – Gotye – Making Mirrors

Por enquanto é só, até a próxima.

Faça um algoritmo que leia um valor de temperatura em graus Celsius e a converta para graus Fahrenheit.

Faça um algoritmo que leia um valor de temperatura em graus Celsius e a converta para graus Fahrenheit.

Abaixo estão os fontes desse algoritimo em C, Java, Python e ruby.

Basicamente nós pegamos a temperatura que o usuário digita e fazemos o cálculo matemático para convertê-lo em Farenheit.

Em C:

  
#include 

int main(int argc, char **argv[]){  
    float temperatura;
    printf("digite o valor da temperatura: ");
    scanf("%f",&temperatura);
    printf("o resultado e: %.2f\n",((9/5)*temperatura)+32);

    return 0;
}

Em Java:

  
import java.io.* ;  
class Exercicio4 {  
     public static void main(String args[])
     {
          Console console = System.console();

          String temperatura = null;

          temperatura = console.readLine("digite o valor da temperatura: ");   

          System.out.println("o resultado e: " + (((9/5)*Float.parseFloat(temperatura))+32));
     }    
}

Em Python:

  
#!/usr/bin/env python

def main():  
    temperatura = input("digite o valor da temperatura: ")
    print "o resultado e: ", float(((9/5)*temperatura)+32)

if __name__ == "__main__":  
    main()

Em Ruby:

  
puts "digite o valor da temperatura: "  
STDOUT.flush  
temperatura = gets.chomp  
puts "o resultado e: " + (((9/5)*temperatura.to_f)+32).to_s  

configure: error: XML::Parser perl module is required for intltool

  
>>> Emerging (1 of 365) dev-util/intltool-0.41.1
 * intltool-0.41.1.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                             [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                  [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                 [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                [ ok ]
 * CPV:  dev-util/intltool-0.41.1
 * REPO: gentoo
 * USE:  amd64 elibc_glibc kernel_linux multilib userland_GNU
>>> Unpacking source...
>>> Unpacking intltool-0.41.1.tar.gz to /var/tmp/portage/dev-util/intltool-0.41.1/work
>>> Source unpacked in /var/tmp/portage/dev-util/intltool-0.41.1/work
>>> Preparing source in /var/tmp/portage/dev-util/intltool-0.41.1/work/intltool-0.41.1 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-util/intltool-0.41.1/work/intltool-0.41.1 ...
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64
checking for a BSD-compatible install... /usr/bin/install -c  
checking whether build environment is sane... yes  
checking for a thread-safe mkdir -p... /bin/mkdir -p  
checking for gawk... gawk  
checking whether make sets $(MAKE)... yes  
checking for perl... /usr/bin/perl  
checking for perl >= 5.8.1... 5.10.1  
checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool  

a solução é simples é só recompilar o pacote dev-perl/XML-Parser

  
emerge dev-perl/XML-Parser  

No module named _elementtree

Após um longo tempo parado, voltaremos a atualizar o blog com mais frequência, o problema abaixo na instalação do pacote x11-libs/libxcb-1.1.90.1:

  
>>> Emerging (20 of 62) x11-libs/libxcb-1.1.90.1
 * libxcb-1.1.90.1.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                             [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                   [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                  [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                 [ ok ]
>>> Unpacking source...
>>> Unpacking libxcb-1.1.90.1.tar.bz2 to /var/tmp/portage/x11-libs/libxcb-1.1.90.1/work
 * Running elibtoolize in: libxcb-1.1.90.1
 *   Applying portage-1.5.10.patch ...
 *   Applying sed-1.5.6.patch ...
>>> Source unpacked in /var/tmp/portage/x11-libs/libxcb-1.1.90.1/work
>>> Compiling source in /var/tmp/portage/x11-libs/libxcb-1.1.90.1/work/libxcb-1.1.90.1 ...
 * econf: updating libxcb-1.1.90.1/config.sub with /usr/share/gnuconfig/config.sub
 * econf: updating libxcb-1.1.90.1/config.guess with /usr/share/gnuconfig/config.guess
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --prefix=/usr --datadir=/usr/share --disable-build-docs --disable-xselinux --enable-xinput
checking for a BSD-compatible install... /usr/bin/install -c  
checking whether build environment is sane... yes  
checking for a thread-safe mkdir -p... /bin/mkdir -p  
checking for gawk... gawk  
checking whether make sets $(MAKE)... yes  
checking for a Python interpreter with version >= 2.5... python  
checking for python... /usr/bin/python  
checking for python version... 2.6  
checking for python platform... linux2  
checking for python script directory... ${prefix}/lib64/python2.6/site-packages  
checking for python extension module directory... ${exec_prefix}/lib64/python2.6/site-packages  
checking for x86_64-pc-linux-gnu-pkg-config... no  
checking for pkg-config... /usr/bin/pkg-config  
checking pkg-config is at least version 0.9.0... yes  
checking for CHECK... yes  
checking build system type... x86_64-pc-linux-gnu  
checking host system type... x86_64-pc-linux-gnu  
checking for style of include used by make... GNU  
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc  
checking for C compiler default output file name... a.out  
checking whether the C compiler works... yes  
checking whether we are cross compiling... no  
checking for suffix of executables...  
checking for suffix of object files... o  
checking whether we are using the GNU C compiler... yes  
checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes  
checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed  
checking dependency style of x86_64-pc-linux-gnu-gcc... gcc3  
checking for a sed that does not truncate output... /bin/sed  
checking for grep that handles long lines and -e... /bin/grep  
checking for egrep... /bin/grep -E  
checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld  
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes  
checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r  
checking for BSD-compatible nm... /usr/bin/nm -B  
checking whether ln -s works... yes  
checking how to recognize dependent libraries... pass_all  
checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E  
checking for ANSI C header files... yes  
checking for sys/types.h... yes  
checking for sys/stat.h... yes  
checking for stdlib.h... yes  
checking for string.h... yes  
checking for memory.h... yes  
checking for strings.h... yes  
checking for inttypes.h... yes  
checking for stdint.h... yes  
checking for unistd.h... yes  
checking dlfcn.h usability... yes  
checking dlfcn.h presence... yes  
checking for dlfcn.h... yes  
checking for x86_64-pc-linux-gnu-g++... x86_64-pc-linux-gnu-g++  
checking whether we are using the GNU C++ compiler... yes  
checking whether x86_64-pc-linux-gnu-g++ accepts -g... yes  
checking dependency style of x86_64-pc-linux-gnu-g++... gcc3  
checking how to run the C++ preprocessor... x86_64-pc-linux-gnu-g++ -E  
checking for x86_64-pc-linux-gnu-g77... no  
checking for x86_64-pc-linux-gnu-xlf... no  
checking for x86_64-pc-linux-gnu-f77... no  
checking for x86_64-pc-linux-gnu-frt... no  
checking for x86_64-pc-linux-gnu-pgf77... no  
checking for x86_64-pc-linux-gnu-cf77... no  
checking for x86_64-pc-linux-gnu-fort77... no  
checking for x86_64-pc-linux-gnu-fl32... no  
checking for x86_64-pc-linux-gnu-af77... no  
checking for x86_64-pc-linux-gnu-xlf90... no  
checking for x86_64-pc-linux-gnu-f90... no  
checking for x86_64-pc-linux-gnu-pgf90... no  
checking for x86_64-pc-linux-gnu-pghpf... no  
checking for x86_64-pc-linux-gnu-epcf90... no  
checking for x86_64-pc-linux-gnu-gfortran... no  
checking for x86_64-pc-linux-gnu-g95... no  
checking for x86_64-pc-linux-gnu-xlf95... no  
checking for x86_64-pc-linux-gnu-f95... no  
checking for x86_64-pc-linux-gnu-fort... no  
checking for x86_64-pc-linux-gnu-ifort... no  
checking for x86_64-pc-linux-gnu-ifc... no  
checking for x86_64-pc-linux-gnu-efc... no  
checking for x86_64-pc-linux-gnu-pgf95... no  
checking for x86_64-pc-linux-gnu-lf95... no  
checking for x86_64-pc-linux-gnu-ftn... no  
checking for g77... no  
checking for xlf... no  
checking for f77... no  
checking for frt... no  
checking for pgf77... no  
checking for cf77... no  
checking for fort77... no  
checking for fl32... no  
checking for af77... no  
checking for xlf90... no  
checking for f90... no  
checking for pgf90... no  
checking for pghpf... no  
checking for epcf90... no  
checking for gfortran... no  
checking for g95... no  
checking for xlf95... no  
checking for f95... no  
checking for fort... no  
checking for ifort... no  
checking for ifc... no  
checking for efc... no  
checking for pgf95... no  
checking for lf95... no  
checking for ftn... no  
checking whether we are using the GNU Fortran 77 compiler... no  
checking whether  accepts -g... no  
checking the maximum length of command line arguments... 1572864  
checking command to parse /usr/bin/nm -B output from x86_64-pc-linux-gnu-gcc object... ok  
checking for objdir... .libs  
checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar  
checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib  
checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip  
checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no  
checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC  
checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC works... yes  
checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes  
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes  
checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes  
checking whether -lc should be explicitly linked in... no  
checking dynamic linker characteristics... GNU/Linux ld.so  
checking how to hardcode library paths into programs... immediate  
checking whether stripping libraries is possible... yes  
checking if libtool supports shared libraries... yes  
checking whether to build shared libraries... yes  
checking whether to build static libraries... yes  
configure: creating libtool  
appending configuration tag "CXX" to libtool  
checking for ld used by x86_64-pc-linux-gnu-g++... /usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64  
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) is GNU ld... yes  
checking whether the x86_64-pc-linux-gnu-g++ linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes  
checking for x86_64-pc-linux-gnu-g++ option to produce PIC... -fPIC  
checking if x86_64-pc-linux-gnu-g++ PIC flag -fPIC works... yes  
checking if x86_64-pc-linux-gnu-g++ static flag -static works... yes  
checking if x86_64-pc-linux-gnu-g++ supports -c -o file.o... yes  
checking whether the x86_64-pc-linux-gnu-g++ linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes  
checking dynamic linker characteristics... GNU/Linux ld.so  
(cached) (cached) checking how to hardcode library paths into programs... immediate
appending configuration tag "F77" to libtool  
checking for x86_64-pc-linux-gnu-gcc... (cached) x86_64-pc-linux-gnu-gcc  
checking whether we are using the GNU C compiler... (cached) yes  
checking whether x86_64-pc-linux-gnu-gcc accepts -g... (cached) yes  
checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... (cached) none needed  
checking dependency style of x86_64-pc-linux-gnu-gcc... (cached) gcc3  
checking for xsltproc... /usr/bin/xsltproc  
checking for XCBPROTO... yes  
checking for NEEDED... yes  
checking for XDMCP... yes  
checking for XdmcpWrap in -lXdmcp... yes  
checking execinfo.h usability... yes  
checking execinfo.h presence... yes  
checking for execinfo.h... yes  
checking XCBPROTO_XCBINCLUDEDIR... /usr/share/xcb  
checking XCBPROTO_XCBPYTHONDIR... /usr/lib64/python2.6/site-packages  
checking for ANSI C header files... (cached) yes  
checking for library containing getaddrinfo... none required  
checking for library containing connect... none required  
checking for struct sockaddr_un.sun_len... no  
checking whether x86_64-pc-linux-gnu-gcc supports symbol visibility... yes  
checking whether documentation is built... no  
configure: creating ./config.status  
config.status: creating Makefile  
config.status: creating src/Makefile  
config.status: creating tests/Makefile  
config.status: creating doc/Makefile  
config.status: creating xcb.pc  
config.status: creating xcb-xlib.pc  
config.status: creating xcb-composite.pc  
config.status: creating xcb-damage.pc  
config.status: creating xcb-dpms.pc  
config.status: creating xcb-glx.pc  
config.status: creating xcb-randr.pc  
config.status: creating xcb-record.pc  
config.status: creating xcb-render.pc  
config.status: creating xcb-res.pc  
config.status: creating xcb-screensaver.pc  
config.status: creating xcb-shape.pc  
config.status: creating xcb-shm.pc  
config.status: creating xcb-sync.pc  
config.status: creating xcb-xevie.pc  
config.status: creating xcb-xf86dri.pc  
config.status: creating xcb-xfixes.pc  
config.status: creating xcb-xinerama.pc  
config.status: creating xcb-xinput.pc  
config.status: creating xcb-xprint.pc  
config.status: creating xcb-xselinux.pc  
config.status: creating xcb-xtest.pc  
config.status: creating xcb-xv.pc  
config.status: creating xcb-xvmc.pc  
config.status: creating doc/xcb.doxygen  
config.status: creating src/config.h  
config.status: executing depfiles commands

  Package: libxcb 1.1.90.1

  Configuration
    XDM support.........: yes
    Build unit tests....: yes

  Used CFLAGS:
    CPPFLAGS............: 
    CFLAGS..............: -march=athlon64 -O2 -fomit-frame-pointer -pipe
    Warning CFLAGS......: -Wall -pedantic -Wpointer-arith         -Wstrict-prototypes -Wmissing-declarations -Wnested-externs

  Installation:
    Prefix..............: /usr

make  
Making all in src  
make[1]: Entering directory `/var/tmp/portage/x11-libs/libxcb-1.1.90.1/work/libxcb-1.1.90.1/src'  
ln -s -f /usr/share/xcb/xproto.xml xproto.xml  
/usr/bin/python ./c_client.py -p /usr/lib64/python2.6/site-packages /usr/share/xcb/xproto.xml
Traceback (most recent call last):  
  File "./c_client.py", line 2, in 
    from xml.etree.cElementTree import *
  File "/usr/lib64/python2.6/xml/etree/cElementTree.py", line 3, in 
    from _elementtree import *
ImportError: No module named _elementtree  
make[1]: *** [xproto.c] Error 1  
make[1]: Leaving directory `/var/tmp/portage/x11-libs/libxcb-1.1.90.1/work/libxcb-1.1.90.1/src'  
make: *** [all-recursive] Error 1  
 * 
 * ERROR: x11-libs/libxcb-1.1.90.1 failed.
 * Call stack:
 *               ebuild.sh, line   48:  Called src_compile
 *             environment, line 3095:  Called x-modular_src_compile
 *             environment, line 3875:  Called x-modular_src_make
 *             environment, line 3914:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed"
 *  The die message:
 *   emake failed
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/x11-libs/libxcb-1.1.90.1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/x11-libs/libxcb-1.1.90.1/temp/environment'.
 * 

>>> Failed to emerge x11-libs/libxcb-1.1.90.1, Log file:

>>>  '/var/tmp/portage/x11-libs/libxcb-1.1.90.1/temp/build.log'

para resolver é só você recompilar o python com suporte a xml:

USE="xml" emerge dev-lang/python

abraço,
até…

Cannot find .pst files

não é possível encontrar o arquivo .pst

esse erro geralmente acontece quando o usuário retorna o backup para o Microsoft Outlook 2003, um vínculo é criado no software para aquele arquivo, que só foi utilizado e depois deletado, para acabar com essa mensagem é só você seguir os passos abaixo.

tools -> options -> mail setup -> data
ferramenta -> opçoes -> configurar email -> arquivo de dados

as mudanças não vão ficar só no layout, aguardem…

abraço,

até…

Erro durante a verificação ortográfica

Como vocês já puderam perceber este blog anda largado às traças, tentando mudar isso estou postando uma dica rápida.

Para aqueles que utilizam o corretor ortográfico do word, no outlook express por exemplo, se você apertar a tecla F7 e o seguinte erro for exibido:

“Erro durante a verificação ortográfica”

A correção é muito rápida, basta você incluir a dll csapi3t1.dll na pasta C:\Arquivos de programas\Arquivos comuns\Microsoft Shared\Proof.

Você pode baixar essa e muitas outras dll’s no clicando aqui.

abraço,

até…

MySql: Converter VARCHAR para DATE

Se, por algum motivo, um campo data do seu banco de dados foi criado como VARCHAR e você precisa mascarar o resultado de um SELECT em um campo.

Como esse campo é VARCHAR não é possível utilizar somente máscara conforme esse post esse post.

Além de utilizar a máscara você precisa converter a informação do campo para o tipo data, uma vez que até então ela é só uma string. Para essa tarefa o MySql 5 conta com o date_format! O que torna essa tarefa muito mais simples.

select DATE_FORMAT(str_to_date('1/1/2008', "%d/%m/%Y"), "%d/%m/%Y");

Como você provavelmente irá precisar utilizar esse campo depois o ideal é utilizar um nome que torne a manipulação mais prática:

select DATE_FORMAT(str_to_date('1/1/2008', "%d/%m/%Y"), "%d/%m/%Y") AS date_column;

Um exemplo final,  caso a coluna da tabela fosse dataNascimento:

SELECT date_format(str_to_date(dataNascimento, "%d/%m/%Y"),"%d/%m/%Y") AS dataNascimento FROM tbcliente WHERE CodCliente = 44;

abraço,

até…

Configurando Proxy no N95 ou n95 8GB

Essa é uma dica baseada na minha faculdade, pois não basta apenas se conectar ao hotspot, você ainda deve configurar o proxy. Para configurá-lo é só seguir os passos abaixo:

Entre no menu principal, em seguida Ferramentas -> Configurações -> Conexão -> Pontos de Acesso, selecione a conexão, no menu opções selecione editar e em seguida novamente no menu opções selecione Configs. Avançada, agora é só você definir o endereço e a porta para poder navegar.

abraços,

até