Foreach i MySQL INSERT

This is a discussion on Foreach i MySQL INSERT within the Produktion af websider ved brug af php (dk.edb.internet.webdesign.serverside.php) forum.

Re: Foreach i MySQL INSERT

Postby Johan Holst Nielsen on Fri Nov 21, 2008 2:58 am

The87Boy wrote:
> On 21 Nov., 10:37, Johan Holst Nielsen wrote:
>> The87Boy wrote:
>>
>>>> Virker - med mindre du har en fejl i din SQL.
>>> Jeg har testet på alle mulige måder, om der skulle være en fejl, men
>>> det er der ikke :( Ellers kan jeg ihvertfald ikke finde den
>>> Er der ellers andre måder, jeg kan gøre det på?
>> Du bliver nødt til at vise mig hele sourcen så... der er i hvert fald
>> ikke en fejl i de cirka 10 linjer jeg skrev - med mindre det er i SQL'en.
>>
>> Upload evt. en .phps til din server og send et link - husk at fjerne
>> evt. passwords fra sourcen.
>
> Det var alligevel MySQL'en, der var fejl
> Det var det andet id, jeg havde glemt en auto_increment på

Hehe fair nok. Som Dan også skriver - så kan et output af mysql_error()
typisk hjælpe dig med den slags fejl...

evt blot

mysql_query($sql) or die(mysql_error());

Så er jeg sikker på du havde fanget fejlen betydeligt hurtigere.

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk/
Johan Holst Nielsen
 
Posts: 792
Joined: Wed Nov 26, 2003 7:08 am

Re: Foreach i MySQL INSERT

Postby The87Boy on Fri Nov 21, 2008 3:17 am

On 21 Nov., 10:58, Johan Holst Nielsen wrote:
> The87Boy wrote:
> > On 21 Nov., 10:37, Johan Holst Nielsen wrote:
> >> The87Boy wrote:
>
> >>>> Virker - med mindre du har en fejl i din SQL.
> >>> Jeg har testet på alle mulige måder, om der skulle være en fejl, men
> >>> det er der ikke :( Ellers kan jeg ihvertfald ikke finde den
> >>> Er der ellers andre måder, jeg kan gøre det på?
> >> Du bliver nødt til at vise mig hele sourcen så... der er i hvert fald
> >> ikke en fejl i de cirka 10 linjer jeg skrev - med mindre det er i SQL'en.
>
> >> Upload evt. en .phps til din server og send et link - husk at fjerne
> >> evt. passwords fra sourcen.
>
> > Det var alligevel MySQL'en, der var fejl
> > Det var det andet id, jeg havde glemt en auto_increment på
>
> Hehe fair nok. Som Dan også skriver - så kan et output af mysql_error()
> typisk hjælpe dig med den slags fejl...
>
> evt blot
>
> mysql_query($sql) or die(mysql_error());
>
> Så er jeg sikker på du havde fanget fejlen betydeligt hurtigere.

Okay, kan den oplyse det?
The87Boy
 
Posts: 21
Joined: Mon Sep 25, 2006 8:44 am

Re: Foreach i MySQL INSERT

Postby Johan Holst Nielsen on Fri Nov 21, 2008 3:21 am

The87Boy wrote:
>> mysql_query($sql) or die(mysql_error());
>>
>> Så er jeg sikker på du havde fanget fejlen betydeligt hurtigere.
>
> Okay, kan den oplyse det?

Den vil i hvert fald komme med en fejl som vil lede sig rigtigt.

1. Du ved det er i SQL'en der er fejl
2. Den vil formentlig fortælle at din ID ikke er unikt selvom du har sat
det til primary key.

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk/
Johan Holst Nielsen
 
Posts: 792
Joined: Wed Nov 26, 2003 7:08 am

Re: Foreach i MySQL INSERT

Postby Leif Neland on Fri Nov 21, 2008 4:48 am


"The87Boy" skrev i en meddelelse
news:cf8e77d4-ea8b-4933-affa-0452f6b2a984@x14g2000yqk.googlegroups.com...
> Er det ikke muligt at indsætte flere værdier i en MySQL-database vha.
> Foreach?

> Altså noget ligende dette:
> foreach ($ids AS $id) {
> $deb = mysql_query("INSERT INTO `Id` (`id`, `fraid`, `mappeid`,
> `skrevet`, `svar1`, `svar2`) VALUES ('".$id."', '".$from."', '".
> $mpid."', '".$skrv."', '".$svr1."', '".$svr2."')");
> }

Den SQL-inject-sikrede metode, der bruger mysqli og prepared statements

$db = new mysqli("localhost", "db_username", "db_password", "db_name");
if (mysqli_connect_errno())
{
die("Connect failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO `Id` (`id`, `fraid`, `mappeid`,`skrevet`, `svar1`,
`svar2`) values (?,?,?,?,?,?)
if ($stmt = $db->prepare($sql))
{
$stmt->bind_param("iiisss", $id, $from, $mpid, $skrv,$svr1,$svr2);
foreach($ids as $id) {
$stmt->execute();
}
$stmt->close();
}
else
{
die("Could not prepare SQL statement: $sql");
}
$mysqli->close();

Leif


Leif Neland
 
Posts: 83
Joined: Sun May 30, 2004 6:31 am

Previous

Return to Produktion af websider ved brug af php (dk.edb.internet.webdesign.serverside.php)

Who is online

Users browsing this forum: No registered users and 0 guests