Pedro Augusto Postado Dezembro 18, 2007 Denunciar Share Postado Dezembro 18, 2007 Olá, tem um campo em uma tabela do meu bd que não está aceitando o id da categoria ser repetido em vários itens. O sql é esse... tem algum erro?CREATE TABLE sn_not ( id SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, nottitulo VARCHAR(60), notcategoria SMALLINT ( 5 ) NOT NULL UNIQUE, notcorpo TEXT, notdata DATE );Esse é que deverá aceitar valor repetido em vários itens...notcategoria SMALLINT ( 5 ) NOT NULL UNIQUEObrigado desde já! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Dezembro 18, 2007 Denunciar Share Postado Dezembro 18, 2007 Então retire o UNIQUE, ele diz que o campo deve ser único. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pedro Augusto Postado Dezembro 18, 2007 Autor Denunciar Share Postado Dezembro 18, 2007 Valeu este erro foi corrigido. Mas quando fui testar inserir os dados escrevi coisas à toa em inglês e usei ' aspa simples, deu o seguinte erro: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 'll teste', '1', 'I'ma','2007-12-18')' at line 1\nQUERY-> INSERT INTO sn_not(notId, notTitulo, notCategoria, notCorpo, notData) values('NULL', ''ll teste', '1', 'I'ma','2007-12-18')Como posso corrigí-lo...?Valeu mais uma vez! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Dezembro 18, 2007 Denunciar Share Postado Dezembro 18, 2007 Repare ... ''ll teste' nesta parte do insert você está usando aspas simples e duplas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pedro Augusto Postado Dezembro 19, 2007 Autor Denunciar Share Postado Dezembro 19, 2007 Olha, creio que até um certo ponto o código está certo... Quero resolver o problema de dar erro quando digito algum valor que tenha aspas simples ou duplas. Alguém sabe qual é o problema, o código está aí:echo "<form method=\"post\" action=\"$PHP_SELF\"> <p>Título: <br /> <input type=\"text\" name=\"sn_ti\" size=\"30\" maxlength=\"60\" /></p> <p>Categoria: <br />"; include('config.php'); $conectar = mysql_connect("$dbhost","$dbuser","$dbpass"); mysql_select_db("$dbname"); $sql = "SELECT * FROM sn_cat ORDER BY catNome ASC"; $query = mysql_query($sql) or die(mysql_error() . '\nQUERY-> ' . $sql); echo "<select name=\"sn_ct\">"; while($linha = mysql_fetch_array($query)) { echo "<option value=\"" . $linha['catId'] . "\">" . $linha['catNome'] . "</option>"; } echo "</select>"; echo "<p>Corpo: <br /> <textarea name=\"sn_co\" rows=\"6\" cols=\"40\"></textarea></p> <p><input type=\"hidden\" name=\"sn_da\" value=\"$dat\" /> <input type=\"submit\" name=\"inserir\" value=\"Publicar\" /></p> </form>";Valeu até aqui. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Dezembro 19, 2007 Denunciar Share Postado Dezembro 19, 2007 Utilize a função mysql_real_escape_string() para escapar os apóstrofes/aspas na query...basta colocar:$var = mysql_real_escape_string("Essa ''''' '' 'é uma variável que tem ' só que ' está sendo escapado");Assim não dá pau na query... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pedro Augusto Postado Dezembro 20, 2007 Autor Denunciar Share Postado Dezembro 20, 2007 E. Serra valeu, deu uma pesquisada e aprendi como usar a função mysql_real_escape_string(), que você me indicou, e está funcionando beleza. Só pra facilitar, uso 2 var, tem como simplificar o código? Até o momento está assim:$sn_tit = mysql_real_escape_string($sn_Tit); $sn_cor = mysql_real_escape_string($sn_Cor);Até que esse código está pequeno, mas vai que um dia eu precise usar isso pra muitas variáveis. Muito obrigado até aqui. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Dezembro 20, 2007 Denunciar Share Postado Dezembro 20, 2007 Se fosse um array daria pra implementar algo com o foreach, mas no seu caso é assim mesmo... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Pedro Augusto
Olá, tem um campo em uma tabela do meu bd que não está aceitando o id da categoria ser repetido em vários itens. O sql é esse... tem algum erro?
Esse é que deverá aceitar valor repetido em vários itens...
notcategoria SMALLINT ( 5 ) NOT NULL UNIQUE
Obrigado desde já!
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.