Nesta segunda parte do artigo irei demonstrar outros comandos SQL, além de mostrar como manter a integridade em suas tabelas e como tornar o seu banco de dados mais seguro.
Uma vez que tenha sido criado o seu banco de dados, você deverá
informar ao MySQL quem terá acesso à ele. O MySQL utiliza seu
próprio servidor de banco de dados para implementar os acessos
ao banco de dados e tabelas criadas.
Ao se instalar pela primeira vez o MySQL, um banco de dados
chamado 'mysql' é criado. Ele contém seis tabelas:
columns_priv
db
func
host
tables_priv
user
Estas tabelas são utilizadas para decidir a quem é permitido fazer
o que.
A tabela USER contém informações de segurança que se aplicam ao
servidor como um todo. A tabela HOST dá ao servidor todos os direitos
da máquina. As tabelas DB, FUNC, TABLES_PRIV e COLUMNS_PRIV
controlam o acesso aos bancos de dados, tabelas e colunas individuais.
Vou demonstrar apenas o funcionamento das tabelas db e
user, responsáveis diretas pelo acesso aos bancos de dados e
tabelas criadas e ao servidor como um todo.
Veja q troquei o retorno da query
removi o $ do campo order
fiz com q o retorno da função sum, seja armazenado um um alias chamado soma
com o fetch_array, peguei as colunas q vem da query
o comando fetch cria um array e mandei o valor da coluna para
a variavel $soma
[4] Comentário enviado por ft_xavier em 17/02/2005 - 11:43h
Pessoal,
Segui os passos desse excelente artigo sobre manipulacao do mysql para criar uma databse, usuario e definir o acesso dele a somente essa database criada. Só que porem, ele ainda continua a ver as demais e ter acesso a elas. Como posso fazer pra resolver isso ???
[5] Comentário enviado por jeffestanislau em 17/02/2005 - 15:14h
ft_xavier,
Você me enviou este comentário estando na página 7, tabela user, aqui você cria o usuário para acessar o mysql como um todo...
Se quer prender o usuário em uma única tabela, você também deve criar o usuário na tbela DB, descrevendo seu nome de acesso e a tabela ao qual ele pode acessar...
[7] Comentário enviado por kl31n em 09/03/2005 - 00:15h
Ok......legal o artigo....
mas gostaria de saber tipo.....
se existem StoredProcedures no MySql
ou como o MySql trata as operações
para fazer com que realmente aconteça
o Client-Server
tipo...o sistema manda as informações e
o BG eh que grava elas e se vira com tudo.......
[8] Comentário enviado por Hernando em 03/05/2005 - 11:01h
Mais uma vez gostaria de agradece-lo pela presteza nos artigos... e acredito que assim esteje concluido o mini manual ajudando a todos que queiram ingressar no mundo do MySQL... Queria dar a dica que abra um novo artigo dizendo sobre injeção de sql para que todos que sigam esse artigo possam se previnir antes de serem prejudicados pois a má estruturação pode causar grandes danos...
[14] Comentário enviado por adilsom em 19/05/2009 - 18:59h
ola, estou com um problema, tenho um sisetma que foi feito pra mysql4, e agora preciso fazer funcionar com mysql5.
So que em uma pagina da este erro
"
Database error: Invalid SQL: SELECT SUBSTR(t1.starttime,1,10) AS day, sum(t1.sessiontime) AS calltime, sum(t1.sessionbill) AS cost, count(*) as nbcall,sum(t1.buyratecost) FROM call t1 WHERE UNIX_TIMESTAMP(t1.starttime) >= UNIX_TIMESTAMP('2009-05-19') GROUP BY SUBSTR(t1.starttime,1,10) ORDER BY day
MySQL Error: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'call t1 WHERE UNIX_TIMESTAMP(t1.starttime) >= UNIX_TIMESTAMP('2009-05-19') GROU' at line 1)
Database error: Invalid SQL: SELECT count(*) FROM call t1 WHERE UNIX_TIMESTAMP(t1.starttime) >= UNIX_TIMESTAMP('2009-05-19')
MySQL Error: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'call t1 WHERE UNIX_TIMESTAMP(t1.starttime) >= UNIX_TIMESTAMP('2009-05-19')' at line 1)
Database error: next_record called with no query pending.
MySQL Error: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'call t1 WHERE UNIX_TIMESTAMP(t1.starttime) >= UNIX_TIMESTAMP('2009-05-19')' at line 1)
"
Detalhe, no phpmyadmin com mysql4 faço esta busca:
SELECT substr(t1.starttime,1,10) AS day, sum(t1.sessiontime) AS calltime, sum(t1.sessionbill) AS cost, count(*) as nbcall,sum(t1.buyratecost)FROM call t1 WHERE UNIX_TIMESTAMP(t1.starttime) >= UNIX_TIMESTAMP('2009-05-19') GROUP BY SUBSTR(t1.starttime,1,10) ORDER BY day
[16] Comentário enviado por henbran em 14/12/2009 - 14:48h
Boa tarde ...!!!!
GOSTARIA DE SABER SE ALGUÉM PODERIA ME ORIENTAR SOBRE O USO DO JOIN EM 1 CONSULTA SQL.
Tenho uma tabela de maquinas e outras de uso_maquinas. Preciso de uma consulta sql que busque na tabela maquina, todas as maquinas que não estão em uso. É 1 projeto de telecentro comunitário. Trabalho com PHP, MySql/postgre (uso recursos PDO).
Olhem por favor a string de consulta:
SELECT maquina.id_maquina, maquina.num_maq
FROM maquina
RIGHT JOIN
(usotelecentro RIGHT JOIN maquina ON maquina.id_maquina = usotelecentro.id_maquina)
ON usotelecentro.dt_utc >='2009-12-14'
WHERE maquina.id_tele_centro = 2
1º) campos a retornar os dados
2º) tabela de maquinas
3º) inicio da instrução JOIN
4º) primeira condição JOIN {se houver alguma máquina do telecentro em questão, em uso, ....}
5º) segunda condição JOIN {..., verificar se é da data atual}
6º) condição WHERE
Temos 2 tabelas, uma é a tabela fato (dados fixos) e a outra é a tabela tempo (dados inseridos conforme o uso). Usa-se o computador por 1 hora ou + e quando abre a tela para verificar quais computadores estão livres, referentes a esse telecentro, identificar se já/ou não está preenchido o campo hora_fim_de_uso.
É um projeto da prefeitura de Guarulhos - SP da qual sou programador PHP a 6 meses.
Obrigado