Tópico da Programação (desenvolvimento de software)

Tópico da Programação (desenvolvimento de software)

  • Java

    Votes: 66 53.2%
  • C

    Votes: 77 62.1%
  • C++

    Votes: 58 46.8%
  • C#

    Votes: 47 37.9%
  • PHP

    Votes: 45 36.3%
  • BASIC (Visual e outros)

    Votes: 63 50.8%
  • Objective-C

    Votes: 2 1.6%
  • Python

    Votes: 23 18.5%
  • PERL

    Votes: 11 8.9%
  • JavaScript

    Votes: 55 44.4%
  • Ruby

    Votes: 6 4.8%
  • Pascal (ANSI, Turbo, Delphi, outros)

    Votes: 55 44.4%
  • Lisp

    Votes: 9 7.3%
  • Assembly (quais?)

    Votes: 35 28.2%
  • Fortran

    Votes: 12 9.7%
  • COBOL

    Votes: 16 12.9%
  • Haskell / OCaml

    Votes: 8 6.5%
  • Prolog

    Votes: 22 17.7%
  • .NET

    Votes: 37 29.8%
  • Struts/Hibernate

    Votes: 4 3.2%

  • Total voters
    124
é o que me aparece.

Além do que o Nuno156 já te disse acerca de sql injection (validares as tuas variáveis por exemplo) tenta não utilizar essas funções de mysql. Se não estou em erro já não devem ser usadas e o seu suporte é bem possível que acabe em futuras versões de php. Lê um pouco sobre isto PHP: Mysqli - Manual ou (e é uma preferência minha) isto PHP: PDO - Manual
Dessa forma já tens ferramentas para validares as tuas variáveis sem teres que "redescobrir" a roda. Além de que acho que torna o teu código bem mais versátil.
 
Além do que o Nuno156 já te disse acerca de sql injection (validares as tuas variáveis por exemplo) tenta não utilizar essas funções de mysql. Se não estou em erro já não devem ser usadas e o seu suporte é bem possível que acabe em futuras versões de php. Lê um pouco sobre isto PHP: Mysqli - Manual ou (e é uma preferência minha) isto PHP: PDO - Manual
Dessa forma já tens ferramentas para validares as tuas variáveis sem teres que "redescobrir" a roda. Além de que acho que torna o teu código bem mais versátil.

Não é validar. É usar BIND variables, em lugar de colocar os valores numa string
que é passada para o motor.

PHP: mysqli_stmt::bind_param - Manual

Code:
[COLOR=#0000BB][FONT=Source Code Pro]$stmt [/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]= [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]mysqli_prepare[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]([/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$link[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#DD0000][FONT=Source Code Pro]"INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)"[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]);
[/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]mysqli_stmt_bind_param[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]([/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$stmt[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#DD0000][FONT=Source Code Pro]'sssd'[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$code[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$language[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$official[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$percent[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]);[/FONT][/COLOR]
 
Não é validar. É usar BIND variables, em lugar de colocar os valores numa string
que é passada para o motor.

PHP: mysqli_stmt::bind_param - Manual

Code:
[COLOR=#0000BB][FONT=Source Code Pro]$stmt [/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]= [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]mysqli_prepare[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]([/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$link[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#DD0000][FONT=Source Code Pro]"INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)"[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]);
[/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]mysqli_stmt_bind_param[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]([/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$stmt[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#DD0000][FONT=Source Code Pro]'sssd'[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$code[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$language[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$official[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro], [/FONT][/COLOR][COLOR=#0000BB][FONT=Source Code Pro]$percent[/FONT][/COLOR][COLOR=#007700][FONT=Source Code Pro]);[/FONT][/COLOR]

A validação das variáveis era um exemplo usando mysql_. Se usar PDO ou mysqli tem outra formas de optimizar os queries relativamente a variáveis "fanhosas".
 
Para ter strings e queries mais legiveis, nada como usar um heredoc (PHP: Strings - Manual):

Code:
$sql = <<<SQL
    SELECT $coluna
    FROM cenas
    ORDER BY id
SQL;

Ou então:

Code:
$sql= "SELECT {$coluna**
       FROM cenas
       ORDER BY id";

Óbvio que (como já mencionado) as variaveis têm de ser escaped antes de as inserir directamente na query. Eu prefiro fazer isso manualmente do que usar os binds, até porque por vezes torna-se chato correr queries que envolvam demasiadas colunas (e por sua vez, demasiados "?")

Agora já me vou esticar... mas pronto, como costumo usar muito o Codeigniter no trabalho e faço uso frequente do $this->db->escape(), fui agora mesmo dar uma olhadela pelo código para ver o que faz:
Code:
function escape($str)
    {
        if (is_string($str))
        {
            $str = "'".$this->escape_str($str)."'";
        **
        elseif (is_bool($str))
        {
            $str = ($str === FALSE) ? 0 : 1;
        **
        elseif (is_null($str))
        {
            $str = 'NULL';
        **


        return $str;
   **

Fácil! Podia usar esta função se quisesse montar o meu próprio active record.

edit: mesmo com as code tags, isto lixa um pouco o esquema ;)
 
Last edited:
Para ter strings e queries mais legiveis, nada como usar um heredoc (PHP: Strings - Manual):
(...)

A ideia da string concatenada não era apenas pela legibilidade.
Era para evitar os caracteres de mudança de linha dentro da string, algo
que nenhuma das duas soluções que apresentaste evita. A ideia era
tentar descobrir o que poderia estar a causar o erro, e como o código
COPY&PASTE para aqui não permite ver exactamente como está o source...
a solução era usar um esquema que permitisse ver exactamente onde
estavam as quebras de linha.

Mas sim, eu também prefiro o "<<<".
 
Estás a passar o ID a vazio... "apanha" a query e corre-a no MySQL, pode ser que tenhas mais informações do erro.

Ou não...
Imagino que o ID esteja na BD como AUTOINCREMENT.

Pode é ser erro de conversão de string ('') para numérico.
Tipicamente, ou seria omitida a coluna no INSERT, ou sendo especificada deveria
ser 0 ou NULL. Se '' for considerado NULL, deveria funcionar.

Não tenho nenhuma máquina onde testar isso, e sinceramente também não estou
com vontade de criar uma só para isto.
 
ja não programo desde o Pascal e C em 1996/1997. Agora e por questões profissionais, queria voltar a programar pra ganhar uns cobres extra. Quais as liguagens actualmente mais procuradas?
 
ja não programo desde o Pascal e C em 1996/1997. Agora e por questões profissionais, queria voltar a programar pra ganhar uns cobres extra. Quais as liguagens actualmente mais procuradas?

Java
JavaScript
Objective-C

Ou seja, estás f... lixado.
Vais ter de aprender um novo conceito: Object Oriented.

E a complexidade aumentou exponencialmente.
 
yap, ja nao tem nada a ver...

nao sou pro, mas aqui fica a minha ideia:

hoje e tudo Object Oriented e existem libraries para tudo o que queiras fazer...
ja nem da pica, ter um problema e bater codgio ate conseguir resolver porque de certeza que ja alguem o fez e melhor que tu.
há que usar muito o google e saber onde procurar
 
ja não programo desde o Pascal e C em 1996/1997. Agora e por questões profissionais, queria voltar a programar pra ganhar uns cobres extra. Quais as liguagens actualmente mais procuradas?

Acho que primeiro deves pensar no produto final que estas interessado em desenvolver. Sao applicacoes mobile? Paginas web? outro? Do ponto de vista dos empregadores, as linguagens sao importantes mas nao sao tudo, ate porque muitas partilham os mesmos conceitos.
 
Acho que primeiro deves pensar no produto final que estas interessado em desenvolver. Sao applicacoes mobile? Paginas web? outro? Do ponto de vista dos empregadores, as linguagens sao importantes mas nao sao tudo, ate porque muitas partilham os mesmos conceitos.

Pelo que entendi, não está interessado em desenvolver nada.
Está interessado em aprender uma linguagem que tenha procura no mercado de
trabalho.
E do ponto de vista dos empregadores as linguagens são muito importantes,
porque o habitual é já existir um projecto com uma (ou mais) tecnologias escolhidas,
pelo que a procura de recursos é maioritariamente por linguagens dominadas.
Isto, obviamente, para programadores.
 
Eu há uns tempos tive um projecto em Phonegap (que pronto, é Javascript) e aquilo a certa altura já me apetecia dar um tiro na cabeça.

Arrependo-me não ter aprendido ainda sobre MVC em Javascript, agora já há libraries que ajudam muito nestes projectos grandes de JS. Hoje em dia já não serve de todo só saber jQuery. Backbone/Angular já é o futuro, e o web development como profissão já não perdoa nada, considero bastante dificil entrar nestas tecnologias ao mesmo tempo que se forma uma carreira no backend... como gosto tanto do frontend como do backend lá terei um dia de aventurar mais a fundo no JS, fico é sem tempo :p.
 
Boas,
Preciso de uma ajuda a ver se consigo fazer o que quero.
Quando recebo os dados para o Mysql e quero mostra-los mas em pastas diferentes.

Se os dados estiverem todos completos mostra na pagina autorizados e se faltar algum documento mostra na pagina não autorizados
Como é que consigo fazer essas distinção ?
 
Duvida Mysql.
Utilizei o phpmyadmin para criar as tabelas mas não consigo fazer as relações. Alguem me pode dizer um programa que dê para ir buscar as tabelas já feitas a fazer as relações?
 
eu traves do workbench consigo ver os resultados que lá estão? Ou só consigo mesmo criar tabelas e relaçoes?
 
eu traves do workbench consigo ver os resultados que lá estão? Ou só consigo mesmo criar tabelas e relaçoes?

Consegues criar as tabelas e as relações. Ver o que lá está, tens que usar as querys para isso.

Exemplo

Tabela1 - idt1, nome, idade;
Tabela2 - idt2, localidade, pais, idt1;

Neste pequeno exemplo estás a criar a relação entre a tabela 1 e a 2 de 1 para n.

Pra veres o que lá está, dependendo do que te interessa, é fazer uma query para o efeito.
 
Back
Top