03. september 2009 - 20:59
Der er
13 kommentarer og 1 løsning
Meget simpel insert into - virker ikke, hvorfor ik'?
Hej Venner, Håber i kan hjælpe mig hertil; Hvorfor virker min kode ikke? <?php $result = mysql_query("INSERT INTO pjs_projekter (projektnavn) VALUES('$_POST[projektnavn]", $connection); if (!$result) { die("database wuery failed; " . mysql_error()); } echo "1 record added"; ?> Hvad mangler?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
03. september 2009 - 21:13
#1
Der mangler vist en single quote og parentes. $result = mysql_query("INSERT INTO pjs_projekter(projektnavn) VALUES('" . $_POST['projektnavn'] . "')", $connection);
03. september 2009 - 21:14
#2
Og saa skal du nok kigge paa prepared statement og andre maader at beskytte sig mod SQL injection.
04. september 2009 - 22:06
#3
#2 Prepared statements burde ikke være nødvendigt i nyere versioner af PHP...
04. september 2009 - 22:12
#4
Omvendt prepared statement er kun muligt i nyere versioner af PHP.
04. september 2009 - 22:20
#5
Min pointe er at _GET og _POST variables allerede er beskyttet mod SQL injections i nyere versioner af PHP, så det ikke burde være nødvendigt at køre mysql_real_escape_string eller lign. på din string inden du benytter string'en i SQL.
05. september 2009 - 03:37
#6
Ah hva ?? GPC er en oldgammel feature. Den er deprecated i PHP 5.3 og vil blive fjernet i PHP 6.0. Den efterlader hul så store som ladeporte i applikationen fordi: - escaping er database specfikt (og sågar encoding specifikt) - data kan komme andre steder fra end GET og POST Den kan på det bestemtste frarådes at basere sig på den. Prepared statement er vejen fremad.
09. september 2009 - 17:14
#7
Super! men hvis jeg ønsker flere "værdier" end bare "projektnavn" Kan man så gøre lala sådan her!? $result = mysql_query("INSERT INTO pjs_projekter ( projektnavn; kontaktnavn; firmanavn; kontoradresse)&&_ VALUES(' " . $_POST['projektnavn' &] . " " . $_POST['kontaktnavn' &] . " " . $_POST['firmanavn' &] . " " . $_POST['kontoradresse' &] . " ')", $connection);
09. september 2009 - 17:55
#8
Jeg har ikke lige checket for quotes og kommaer, men ideen er rigtig.
09. september 2009 - 18:31
#9
okay tak ;) Hvis jeg vil tjekke om den samme "værdien/navn" findes i DB'en - hvad skal jeg tilføje til min SQL (vis herunder)?? $result = mysql_query("INSERT INTO pjs_projekter(navn) VALUES('" . $_POST['navn'] . "')", $connection);
09. september 2009 - 18:36
#10
Du kan hente med en SELECT. Men hvis du vil forhindre duplikater er det bedre at saette et unikt index paa feltet.
09. september 2009 - 19:04
#11
Okay, Kan du evt. give et eksempel på dette? - Så forstår jeg måske lidt bedre?
12. september 2009 - 01:47
#12
Du sætter et unikt index på i PHPMyAdmin eller hvad du nu bruger til at administrere database med.
14. oktober 2009 - 02:44
#13
all set ?
17. december 2009 - 19:47
#14
Bare skriv et "svar" - de få point... -
Vi tilbyder markedets bedste kurser inden for webudvikling