![]() |
![]() ![]() |
![]() |
-warzywniak365- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Nie mogę sobie poradzić z tym problemem ani znalezieniem go w internecie (IMG:style_emoticons/default/sad.gif) . Mianowicie próbuję wpisać długi(125026 znaków) artykuł do bazy danych w pole LONGTEXT (baza danych MySQL). W programie używam klasy mysqli której obiekt jest przechowywany przez zmienną $connection. $connection->query("insert...") zwraca mi wartość odpowiadającą prawdzie (przechodzi testy if). Generalnie wszystko działa niby ładnie, ale artykuł nie pojawia się w bazie. Jak dodaje krótkie artykuły to wszystko ładnie śmiga (IMG:style_emoticons/default/biggrin.gif) i pojawia się w bazie. Formularz przesyłam metodą POST żeby nie ucięło informacji. Proszę o pomoc i wyrozumiałość jeśli to jest na tyle trywialne, że nie ma tego w internecie (IMG:style_emoticons/default/biggrin.gif) . |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 1 Dołączył: 25.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jesteś pewny, że to nie problem czegoś innego? LONGTEXT jest największym typem MySQLa (ex aequo z LONGBLOB) i potrafi pomieścić do 4GB danych. Czy ten Twój artykuł zajmuje aż tyle miejsca ?
Pokaż może kod. |
|
|
-warzywniak365- |
![]()
Post
#3
|
Goście ![]() |
To jest kod który generuje formularz:
function show_wizard_html(){?> <div id=wizard> <div id="to_new_category"> <p>Zanim wpiszesz treść artykułu zastanów się w jakiej kategorii ma się on znaleźć. <a href="category_wizard.php" onclick="return !aTarget(this)">Tutaj</a> możesz dodać nowe kategorie. Po dodaniu kategorii, aby była ona dostępna musisz ją odświeżyć.</p> </div> <p>Wpisz treść artykułu w języku HTML, ewentualnie używając stylów CSS.</p> <div id="article_wizard"> <form action="addarticle.php" method="post"> Tytuł<input type="text" name="title" /> <textarea class="ckeditor" name="article_contents" cols="150" rows="50"></textarea> <!-- dodawanie zdjec--> <textarea name="key_words" cols="150" rows="3"></textarea> <select name="associated[]" multiple="multiple" size="5"> <?php //rozwiniecie listy artykulow ------------------------------------------- require_once("functions.php"); $connection=connect_db(); $result1 = $connection->query("select name from categories"); if($result1){ for(;$row1 = $result1->fetch_row() (IMG:style_emoticons/default/wink.gif) { echo '<optgroup label="'.$row1[0].'">'; $result2 = $connection->query("select name from articles where in_category='".$row1[0]."'"); if($result2){ for(;$row2 = $result2->fetch_row() (IMG:style_emoticons/default/wink.gif) { echo '<option>'.$row2[0].'</option>'; } } echo '</optgroup>'; } } //$connection.close(); ?> </select> <select name="category"> <?php //------------------------------------------------------------------------------ $connection = connect_db(); $result1 = $connection->query("select name from categories"); if($result1){ for(;$row1 = $result1->fetch_row() (IMG:style_emoticons/default/wink.gif) { echo '<option>'.$row1[0].'</option>'; } } //$connection.close(); ?> </select> <button type="submit">Wyślij</button> </form> </div> </div> <?php } -------------------------------------------------------------- To jest skrypt odbierający formularz: <?php require_once("functions.php"); session_start(); if(!isset($_SESSION['logged'])){ echo 'Musisz być zalogwany'; header("Location: index.php"); } $result = add_article_db($_POST); if($result){ echo 'Dodano artykuł pomyślnie'; }else{ echo 'Nie mogłem dodać artykułu'; } ?> --------------------------------------------------- To jest funkcja która wpisuje artykuł w bazę: function add_article_db($form){ $connection = connect_db(); $tmp=''; foreach($form['associated'] as $link){ $tmp.=$link.' '; } foreach($form as $value){ echo $value.'<br/>'; } $result = $connection->query("insert into articles (name,in_category,author,creation_date,contents,key_words,associated_with,blocka de) values('".$form['title']."','".$form['category']."', '".$_SESSION['logged']."','".date("Y-m-d")."','".$form['article_contents']."','".$form['key_words']."','".$tmp."',1)"); if($result){ return true; } return false; } |
|
|
-warzywniak365- |
![]()
Post
#4
|
Goście ![]() |
;) zamiast tych emotek
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 1 Dołączył: 25.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Używaj do prezentowania kodu odpowiednich znaczników, będzie czytelniej.
Moim zdaniem masz w tekście jakiś apostrof lub cudzysłów. Użyj na danych addslashes na artykule wprowadzanym do bazy, powinno pomóc. |
|
|
-warzywniak365- |
![]()
Post
#6
|
Goście ![]() |
jeszcze tabela w bazie:
CREATE TABLE IF NOT EXISTS articles( id BIGINT NOT NULL AUTO_INCREMENT, name VARCHAR(40) NOT NULL, in_category VARCHAR(30) NOT NULL, author VARCHAR(30) NOT NULL, creation_date DATE NOT NULL, contents LONGTEXT NOT NULL, key_words VARCHAR(300) NOT NULL, associated_with VARCHAR(300), blockade BIT(1) NOT NULL, CONSTRAINT article_id PRIMARY KEY (id), CONSTRAINT category_of_article FOREIGN KEY (in_category) REFERENCES categories (name), CONSTRAINT author_of_article FOREIGN KEY (author) REFERENCES users (login) )ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci AUTO_INCREMENT=0; |
|
|
-warzywniak365- |
![]()
Post
#7
|
Goście ![]() |
Pomogło addslashes wielkie dzięki (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:10 |