Avatar billede moreless Nybegynder
02. april 2002 - 14:24 Der er 26 kommentarer og
2 løsninger

You have an error in your SQL syntax near '!')' at line 2

Hvorfor må man ikke bruge tegnet "'" Jeg har set andre steder at det er brugt.. men jeg kan ikke få det til at virke..

/moreless
Avatar billede moreless Nybegynder
02. april 2002 - 14:25 #1
Altså dette tegn: ' hvis noget er i tvivl :-)
Avatar billede sthen Nybegynder
02. april 2002 - 14:27 #2
sæt en backslash foran
altså
\'
Avatar billede beldring Nybegynder
02. april 2002 - 14:29 #3
Du skal altis have \ foran både " og ' ...
Avatar billede sthen Nybegynder
02. april 2002 - 14:29 #4
Ovennævnte selvfølgelig kun hvis du skal udskrive din ' til skærmen.
Elles kan du sagtens anvende ' i stedet for ", blot husk at bruge dem parvis.
Avatar billede beldring Nybegynder
02. april 2002 - 14:29 #5
altså ikke når du bruger "" til at omringe noget  :O)
Avatar billede moreless Nybegynder
02. april 2002 - 14:30 #6
princippet er det samme som her på eksperten at man skal intaste nogle beskeder.. og brugeren skal jo ikke taste \' ?

/moreless
Avatar billede moreless Nybegynder
02. april 2002 - 14:32 #7
er i med?.. det er noget der skal tastes ind i en database af en bruger...
Avatar billede beldring Nybegynder
02. april 2002 - 14:33 #8
hmmm.......nu aner jeg ikke hvad du fabler om!  Snakker du om Mysql, eller PHP?
Avatar billede moreless Nybegynder
02. april 2002 - 14:33 #9
eks: Det var en go' ferie

det vil den ikke pga '
Avatar billede moreless Nybegynder
02. april 2002 - 14:33 #10
mySQL
Avatar billede beldring Nybegynder
02. april 2002 - 14:33 #11
Hvis du snakker om, hvad det er brugeren skal skrive, så snakker du om PHP, men hvis du snakker om, hvor det bliver gemt, så snakker du om SQL.
Avatar billede beldring Nybegynder
02. april 2002 - 14:34 #12
Det skal du jo så, højst sandsynligt lave i PHP....

Jeg er bange for, at jeg ikke helt forstår hvad det er du mener!
Avatar billede moreless Nybegynder
02. april 2002 - 14:35 #13
jeg laver et eksempel.. to sekunder...
Avatar billede disky Nybegynder
02. april 2002 - 14:37 #14
beldring:
Sikke da noget ævl.

Tror du virkeligt at man kun kan bruge Mysql fra php ??

Så er du godt nok meget naiv.

Mysql er en database, og har INTET med php at gøre !!!





moreless:
Det du skal gøre i det programmeringssprog du laver dit program i som skal snakke med MYSQL serveren, er at udskifte alle ' med \' inden du gemmer i basen.

Så hvis du f.eks. vil gemme:

It's a little test

Skal det konverteres til:

It\'s a little test

inden du putter det i din insert into query
Avatar billede moreless Nybegynder
02. april 2002 - 14:39 #15
ja nemlig.. men hvordan siger jeg at den skal gøre det?

/moreless
Avatar billede disky Nybegynder
02. april 2002 - 14:41 #16
du skriver en metode der kan gøre det hvis den ikke findes i det sprog du bruger, og ellers anvender du den der findes.
Avatar billede beldring Nybegynder
02. april 2002 - 14:44 #17
sås...disky! ...PHP var nævnt som et eks. jeg går ud fra, han godt ved, at han kan bruge f.eks. ASP.......(Så hvad med liiige at tage en slapper?)
Og hvad er det lige du snakker om? Det du siger der, har han fået afvide, det han spørger om, er hvordan han gør det!  ER DU NAIV?
Avatar billede moreless Nybegynder
02. april 2002 - 14:44 #18
ehm, jeg bruger php.. og såe vil jeg gerne have hjælp den den metode..

/moreless
Avatar billede beldring Nybegynder
02. april 2002 - 14:47 #19
Så bruger du en funktion der hedder addslashes();
Fx:
$var = addslashes($var);
Avatar billede disky Nybegynder
02. april 2002 - 14:51 #20
beldring du skriver:
Hvis du snakker om, hvad det er brugeren skal skrive, så snakker du om PHP, men hvis du snakker om, hvor det bliver gemt, så snakker du om SQL.

Altså du siger at det brugeren skriver er PHP, du giver ingen mulighed for andre sprog i din udtalelse.



moreless:
Nu er dit problem godt nok et php problem og du spørger i en mysql gruppe, men pyt.

Du skal bruge denne metode som er beskrevet her:
http://www.php.net/manual/en/function.mysql-real-escape-string.php
Avatar billede moreless Nybegynder
02. april 2002 - 14:53 #22
gider du sætte det i sammenhæng med dette:

<?php
include "top.php";

//TheForm
echo "<form action='test_end.php' method='POST' onSubmit='return chk(this)'>";
echo "<br><br>";
echo "<table align='center' border='0' cellspacing='0' cellpadding='4'>";
echo "</td></tr>";
echo "<tr><td>";
echo "<b>Kommentar:</b><br>";
echo "<textarea name='test' cols='40' rows='5' style='width:300px'>";
echo "</textarea>";
echo "</td></tr>";
echo "<tr><td>";
echo "</table>";
echo "<p>";
echo "<div align='center'><input type='submit' value='Send' title='Send'></div>";
echo "</form>";

include "bund.php";
?>

--------------------------------------------------

<?php
include "top.php";

$test = $HTTP_POST_VARS[test];

// connectToDatabase
mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx");

// insertIntoDatabase
{           
mysql_query("INSERT INTO test (test)
VALUES ('$test')")
or die (mysql_error()); ;
}
mysql_close();

echo "<div align='center'>FLOT!!!</div>";

include "bund.php";
?>
Avatar billede moreless Nybegynder
02. april 2002 - 14:53 #23
Avatar billede disky Nybegynder
02. april 2002 - 14:55 #24
den sidste kan bruges, men det korrekte er at bruge den der er guidet til Mysql, da den håndtere flere ting
Avatar billede disky Nybegynder
02. april 2002 - 14:56 #25
byt
mysql_query("INSERT INTO test (test)
VALUES ('$test')")

ud med

$test=mysql_escape_string($test);
mysql_query("INSERT INTO test (test)
VALUES ('$test')")
Avatar billede disky Nybegynder
02. april 2002 - 14:56 #26
fjern forresten det extra ; i din 'or die' linie
Avatar billede moreless Nybegynder
02. april 2002 - 14:58 #27
mange tak for svar
Avatar billede disky Nybegynder
02. april 2002 - 14:58 #28
hele din kode bliver så:

p.s. Tag og lav indrykninger for overskuelighedens skyld



<?php
include "top.php";

//TheForm
echo "<form action='test_end.php' method='POST' onSubmit='return chk(this)'>";
echo "<br><br>";
echo "<table align='center' border='0' cellspacing='0' cellpadding='4'>";
echo "</td></tr>";
echo "<tr><td>";
echo "<b>Kommentar:</b><br>";
echo "<textarea name='test' cols='40' rows='5' style='width:300px'>";
echo "</textarea>";
echo "</td></tr>";
echo "<tr><td>";
echo "</table>";
echo "<p>";
echo "<div align='center'><input type='submit' value='Send' title='Send'></div>";
echo "</form>";

include "bund.php";
?>

--------------------------------------------------

<?php
include "top.php";

$test = $HTTP_POST_VARS[test];

// connectToDatabase
mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx");

// insertIntoDatabase
{           
$test=mysql_escape_string($test);
mysql_query("INSERT INTO test (test)
VALUES ('$test')") or die (mysql_error());
}
mysql_close();

echo "<div align='center'>FLOT!!!</div>";

include "bund.php";
?>
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
Computerworld tilbyder specialiserede kurser i database-management

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