Avatar billede oversjanten Nybegynder
01. april 2008 - 17:21 Der er 7 kommentarer og
1 løsning

Textarea giver MySQL fejl ved UPDATE

I en form har jeg følgende :

  <input type="text" name="profileheader" size="71" /><br />
  <hr />
  Beskrivelse *<br />
  <textarea id="profiletext" cols="53" rows="15" name="profiletext" onkeyup="this.form.sizebox.value=this.value.length; this.form.sizeboxw.value=words(this.value)"></textarea>
  <br />

Indholdes skal opdate en tabel i en MySQL, MyISAM,

hvilket jeg gør på denne måde:

if(isset($_POST['createOK']))
{
    $headline = $_POST['profileheader'];
    $text = $_POST['profiletext'];
   
   
   
    $text = $text.str_replace("\n","|",$text);
   
    openDB();
  $sql ="UPDATE user SET `created_flag`='5', `profileheadline`=".$_POST['profileheader'].", `profiletext`=".$text." WHERE `username`='".$user."'";
  mysql_query($sql) or die( "Der opstod en MYSQL fejl: " .mysql_error (). ":" .mysql_errno ());
  mysql_close();
  header("Location: index5.php?msg=12");
  ob_end_flush();

}


Dette resulterer i følgende:

Der opstod en MYSQL fejl: 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 '2 3 4 5 61 |2 |3 |4 |5 |6 WHERE `username`='oversjanten'' at line 2:1064


Skriver jeg kun een linie(uden linie skift) i text feltet, opdateres databasen, men ved en eller flere linieskift giver den ovenstående fejl.

Jeg har prøvet at str_replace("\n","|",$text) samt nl2br($text), men samme fejl kommer...
Avatar billede coderdk Praktikant
01. april 2008 - 20:33 #1
Prøv med:

$text = "'" . mysql_real_escape_string(str_replace("\n","|",$text)) . "'";

Hvorfor laver du \n om til | ?
Avatar billede oversjanten Nybegynder
01. april 2008 - 21:04 #2
Har lige testet...desværre...
fik følgende:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'xxxxxxx.xx'@xxxx.xxxxxxx.xx(using password: NO) in /customers/xxxxxxx.xx/xxxxxxx.xx/httpd.www/dc/createuser/index5.php on line 129

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /customers/xxxxxxx.xx/xxxxxxx.xx/httpd.www/dc/createuser/index5.php on line 129
Der opstod en MYSQL fejl: Query was empty:1065

Jeg ved ikke om det gør nogen forskel at website og sql-server er hosted hos one.com?...Har efterhånden haft en værre hyr med dem :-(

Vedr. "|", så var det mest for at se om det gjorde en forskel...og for at have noget at søge på senere...
Avatar billede dkfire Nybegynder
01. april 2008 - 21:07 #3
Du skal lave en forbindelse til mysql først, før du bruger mysql_real_escape_string().
Avatar billede oversjanten Nybegynder
01. april 2008 - 21:23 #4
Der var fejlen *G*...

Havde ikke luret at databasen var lukket *G*...

Tak for hjælpen, læg lige et svar begge 2.
Avatar billede coderdk Praktikant
01. april 2008 - 21:23 #5
yeah ryk den ned under openDB();...
Avatar billede coderdk Praktikant
01. april 2008 - 21:28 #6
:)
Avatar billede dkfire Nybegynder
01. april 2008 - 21:38 #7
Jeg springer over. :-)
Avatar billede oversjanten Nybegynder
01. april 2008 - 21:39 #8
Ok, endnu engang tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester