Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Paulo

Erro mysql :@

Recommended Posts

Pessoal, o seguinte codigo está com erro, ele não insere no banco de dados :@

No server local funciona normalmente, porem quando hospedo para de funcionar (Hostgator)


            	<div id="right">
                    <div id="title">Inserir curso</div>
                    <div id="description">Insira seus cursos, e eles serão vendidos!</div>
                    
                    <div id="page">
                         <?php
								function moeda($get_valor) {
									$source = array('.', ',');
									$replace = array('', '.');
									$valor = str_replace($source, $replace, $get_valor); //remove os pontos e substitui a virgula pelo ponto
									return $valor; //retorna o valor formatado para gravar no banco
								}
								
								
								
								if(isset($_POST["criar"])) {
									
									$titulo = $_POST["titulo"];
									$descricao = $_POST["descricao"];
									$texto  = $_POST["texto"];
									$url = url($_POST["titulo"]);
									$preco = moeda($_POST["valor"]);
									$cor = $_POST["cor"];
									
									$inseriCurso = mysqli_query($cv, "INSERT INTO `curso` (`titulo`, `descricao`, `texto`, `url`, `preco`, `cor`) VALUES ('$titulo', '$descricao', '$texto', '$url', '$preco', '$cor')");
									
									if($inseriCurso) {
										ok("Tudo certo ;)", "Curso inserido com sucesso!");
										redirect("?page=gerenciar-cursos", 1);
									} else {
										alert("Erro.","Não foi possivel inserir o curso.");	
									}
										
								}
							
							?>
                        <div id="form">
                            <form method="post">
                                <div class="label">Titulo do curso:</div>
                                <input class="input" type="text" name="titulo" />
                                
                                
                                
                                <div class="label">Descrição:</div>
                                <input class="input" type="text" name="descricao" />
                             
                                
                                
                                <div class="label">Texto:</div>
                                <textarea name="texto" id="editor2" rows="10" cols="80">
								
                                </textarea>
                                <script>
                                    // Replace the <textarea id="editor1"> with a CKEditor
                                    // instance, using default configuration.
                                    CKEDITOR.replace( 'editor2' );
                                </script>
                                
                                <div class="label">Valor:</div>
                                <input class="input" name="valor" type="text"  size="11" onKeyUp="moeda(this);" >
                                
                                <div class="label">Cor da box:</div>
                                <input type="color" name="cor">
                                
                                
                                <input class="submit" name="criar" type="submit" value="Cadastrar curso..." />
                                
                            </form>
                            
                            
                           
                        </div><!-- form -->
                    
                    </div><!-- page  -->
                </div><!-- right -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize mysqli_error($cv) para descobrir o motivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me retornou 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 'Times New Roman'; font-size: medium; line-height: normal;">Este curso on' at line 1

 

Deve ser problema com o ckedit


E agora? Qual função uso pra filtrar e depois mostrar em html?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente o textarea "texto" está enviando texto entre aspas e está atrapalhando a sua query.

 

Exemplo:

Caso você envie "Diego Aren't no campo "texto" a query ficaria:

INSERT INTO ..... 'Diego Aren't'

 

Perceba que tem uma aspa simples a mais do que o necessário, e isso acarretaria em erro.

 

Lendo os artigos indicados pelo ESerra, você conseguirá resolver o seu problema.

 

Além das duas funções que são específicas para query, existe também addslashes que pode lhe auxiliar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se usar addslashes na hora de exibir precisará utilizar stripslashes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.