Passar campo " ' "

(agneloavisnet) #1

Estou com problema quando tento inserir uma descrição que “Espigão D’Oeste” da erro na sql. Veja abaixo:
// Estado MYSql
$insert_table = ‘gl_municipio’;
$insert_fields = array(‘codigomunicipio’ => “’$codigo’”, ‘descricao’ => “’$descricao’”, ‘uf’ => “’$uf’”);

ele interpreta a chave " ’ $descricao ’ " e não insere como resolver ?

(Jailton) #2

Usa a macro: sc_sql_injection
https://www.scriptcase.com.br/docs/pt_br/v9/manual/14-macros/01-visao-geral/#sc_sql_injection

// Estado MYSql
$descricao = sc_sql_injection($descricao);
$insert_table = 'gl_municipio';
$insert_fields = array('codigomunicipio' => "'$codigo'", 'descricao' => "'$descricao'", 'uf' => "'$uf'");
2 Likes
(agneloavisnet) #3

No caso ficaria assim:
$descricao = sc_sql_injection($descricao);
$uf = $fir->fields[2];

// Estado MYSql
$insert_table = ‘gl_municipio’;
$insert_fields = array(‘codigomunicipio’ => “’$codigo’”, ‘descricao’ => “$descricao”, ‘uf’ => “’$uf’”);

Tirar o " ’ $descricao ’ " ficaria " $descricao "
Ok. Quando coloca na array a descricao “’” não passa ok.

(Herberto Silva) #4

Olá, não sei se será o caso, mas desde que sempre iniciei a minha aventura na programação, desde o clipper, passando pelo visual dbase e agora no SC, nos meus primeiros passos ensinaram-me que variáveis de trabalho nunca devem ter o mesmo nome que o nome dos campos da tabela, por isso uso sempre a estratégia de que as variáveis publicas iniciam sempre por w, por exemplo [wnome_utilizador] as variáveis dentro do módulo grid, from blank, num evento, iniciam sempre por x por exemplo $xdescricao
de referir que na versao 8 tive um problema que estava a usar um variavel com o mesmo nome da tabela e não estava a gravar quando efetuava um update. bas tou colocar o x antes do nomes da variável e problema resolvido.

1 Like
(agneloavisnet) #5

Ok. resolvido coloquei o sc_sql_injection() e quando estavá repassando " ’ " não deu mais erro passou tudo ok e obrigado a todos.

1 Like