Gå til innhold

mysql sette inn verdier fra php array


Anbefalte innlegg

Skrevet

Dette er sikkert rimlig enkelt.. har ett array med en del verdier, som jeg ønsker å bruke under insert i en tabell, men når jeg skriver queryen slik:

 

mysql_query("INSERT INTO tabell (fieldname1, fieldname2) VALUES ('$array['value1'], $array['value2'])")

 

Jeg ser jo selv at det er " ' " anførselstegnene, som gjør at det hele bryter sammen? hvordan omme rundt dette?

Videoannonse
Annonse
Skrevet

Du kan kanskje escape '-ene med \, jeg vet ikke om det fungerer, eller så kan du gi variablene navn før spørringen:

$val1 = $array['value1'];
$val2 = $array['value2'];
mysql_query("INSERT INTO tabell (fieldname1, fieldname2) VALUES ('$val1', '$val2')")

Skrevet
Du kan kanskje escape '-ene med \, jeg vet ikke om det fungerer, eller så kan du gi variablene navn før spørringen:

$val1 = $array['value1'];
$val2 = $array['value2'];
mysql_query("INSERT INTO tabell (fieldname1, fieldname2) VALUES ('$val1', '$val2')")

 

Greia er et jeg gidder ikke gjøre det om til variable først, da det er snakk om et par.. dessuten er dette en problem stilling jeg stadig vekk har hatt, men ikke orka å finne ut av, gjort som du foreslår, nemmelig å tilordne de til variabler.. men jeg er 100% sikker på at dette er mulig uten å gjøre dette først....

Skrevet (endret)

To alternativer utover å bruke «vanlige» variabler som vist over:

  1. Concat av stringer:
    mysql_query("INSERT INTO tabell (fieldname1, fieldname2) VALUES ('".$array['value1']."', '".$array['value2']."')")


  2. Bruke {} rundt som vil fortelle PHP at alt dette skal tolkes som en variabel:
    mysql_query("INSERT INTO tabell (fieldname1, fieldname2) VALUES ('{$array['value1']}', '{$array['value2']}')")


Endret av Ernie
Skrevet
mysql_query("INSERT INTO tabell (fieldname1, fieldname2) VALUES ('$array[value1], $array[value2])")

Meget dårlig vane! Det der kan fort tolkes som indeks med verdien fra konstanten value1/value2 i arrayen $array. Dvs., utenfor en streng vil det være det første PHP tror du mener.

Skrevet (endret)

Uhh, eh .. det var dette trådstarter var ute etter. Han hadde bare en syntaksfeil, som jeg rettet på.

Endret av Jonas
Skrevet
Uhh, eh .. det var dette trådstarter var ute etter. Han hadde bare en syntaksfeil, som jeg rettet på.

Jo, men det han gjør er jo å bruke en array som vanlig inni en string, og det går jo ikke. Normalt bruker man enten concat eller {} for å få det til.

Skrevet (endret)
Uhh, eh .. det var dette trådstarter var ute etter. Han hadde bare en syntaksfeil, som jeg rettet på.

Da kan jo du prøve denne koden, og se om den printer det du forventer...

<?php

define( value1, 'value2' );

$array = array( 'value1' => "Dette er value1", 'value2' => "Dette er value2" );

echo $array[value1];

?>

 

Forøvrig støtter jeg Ernie's forslag "b", da dette ser mye penere ut, enkelt og greit.

Endret av M4rTiN
Skrevet
Forøvrig støtter jeg Ernie's forslag "b", da dette ser mye penere ut, enkelt og greit.

Jeg synes a er penest, så da er vi vel like langt?

Dette illustrerer bare hvor individuelt kodestil er, men det viktigste er at man er konsekvent.

  • 2 måneder senere...
Skrevet (endret)

Slenger inn et spørsmål, får syntaksfeil ved bruk av denne mysql-snutten:

mysql_query("INSERT INTO entries
	(Header, Entry, By, Time, Comments)
		VALUES ('{$Entry['Header']}', '{$Entry['Entry']}', '{$Entry['User']}', '{$Entry['Time']}', '{$Entry['Comments']}')", $link)
or die(mysql_error());

Hvorfor?

 

Edit: Fikk det til nå

Endret av Garanti

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...