[PDO] update => Invalid parameter number: parameter was not defined
ik ben bezig met een layout,
is wel zo'n beeetje af, in het bovenste menu is een mogelijkheid om de kleur aan te passen van de layout (achtergrond, en later misschien links ofzo)
nu was het nogal standaard met een cookie en wat javascript, maar nu wil ik er PHP achter doen, zodat ik het op kan slaan in een DB
en het dus dieper zit dan een cookie (die veranderd na onunload, zodat php niet overbelast wordt)
cookie enzo werkt prima, javascript ook, het in de database zetten ook, maar updaten werkt niet, dan krijg ik de volgende fout:
[icode]Invalid parameter number: parameter was not defined[/icode] op de plek waar deze code staat: [icode]$stmt->bindParam(':ip', $_SERVER['REMOTE_ADDR']);[/icode]
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if($aantal>0)//Erzijnrijenaanwezig(DusUPDATE)
{
$sql="UPDATE`layout`SET`hex`=':hex'AND`kleur`=':kleur'AND`generated`=':generated'WHERE`ip`=':ip'";
}
else//Geenrijenaanwezig.(DusINSERT)
{
$sql="INSERTINTO`layout`(`ip`,`hex`,`kleur`,`generated`)VALUES(':ip',':hex',':kleur',':generated')";
}
$stmt=$db->prepare($sql);
$stmt->bindParam(':ip',$_SERVER['REMOTE_ADDR']);
$stmt->bindParam(':hex',$_SESSION['layout']['hex']);
$stmt->bindParam(':kleur',$_SESSION['layout']['kleur']);
$stmt->bindParam(':generated',$_SESSION['layout']['generated']);
$beginTransaction=true;
$db->beginTransaction();
$stmt->execute();
$db->commit();
{
$sql="UPDATE`layout`SET`hex`=':hex'AND`kleur`=':kleur'AND`generated`=':generated'WHERE`ip`=':ip'";
}
else//Geenrijenaanwezig.(DusINSERT)
{
$sql="INSERTINTO`layout`(`ip`,`hex`,`kleur`,`generated`)VALUES(':ip',':hex',':kleur',':generated')";
}
$stmt=$db->prepare($sql);
$stmt->bindParam(':ip',$_SERVER['REMOTE_ADDR']);
$stmt->bindParam(':hex',$_SESSION['layout']['hex']);
$stmt->bindParam(':kleur',$_SESSION['layout']['kleur']);
$stmt->bindParam(':generated',$_SESSION['layout']['generated']);
$beginTransaction=true;
$db->beginTransaction();
$stmt->execute();
$db->commit();
het bindParam gedeelte is dus hetzelfde voor insert en update.
deze code wordt gedraait in de CSS (die dus een php pagina is, met een header en mod_rewrite, zodat het op elke nodige pagina automatisch zit :))Dag lui,
ik ben bezig met een layout,
is wel zo'n beeetje af, in het bovenste menu is een mogelijkheid om de kleur aan te passen van de layout (achtergrond, en later misschien links ofzo)
nu was het nogal standaard met een cookie en wat javascript, maar nu wil ik er PHP achter doen, zodat ik het op kan slaan in een DB
en het dus dieper zit dan een cookie (die veranderd na onunload, zodat php niet overbelast wordt)
cookie enzo werkt prima, javascript ook, het in de database zetten ook, maar updaten werkt niet, dan krijg ik de volgende fout:
[icode]Invalid parameter number: parameter was not defined[/icode] op de plek waar deze code staat: [icode]$stmt->bindParam(':ip', $_SERVER['REMOTE_ADDR']);[/icode]
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if($aantal>0)//Erzijnrijenaanwezig(DusUPDATE)
{
$sql="UPDATE`layout`SET`hex`=':hex'AND`kleur`=':kleur'AND`generated`=':generated'WHERE`ip`=':ip'";
}
else//Geenrijenaanwezig.(DusINSERT)
{
$sql="INSERTINTO`layout`(`ip`,`hex`,`kleur`,`generated`)VALUES(':ip',':hex',':kleur',':generated')";
}
$stmt=$db->prepare($sql);
$stmt->bindParam(':ip',$_SERVER['REMOTE_ADDR']);
$stmt->bindParam(':hex',$_SESSION['layout']['hex']);
$stmt->bindParam(':kleur',$_SESSION['layout']['kleur']);
$stmt->bindParam(':generated',$_SESSION['layout']['generated']);
$beginTransaction=true;
$db->beginTransaction();
$stmt->execute();
$db->commit();
{
$sql="UPDATE`layout`SET`hex`=':hex'AND`kleur`=':kleur'AND`generated`=':generated'WHERE`ip`=':ip'";
}
else//Geenrijenaanwezig.(DusINSERT)
{
$sql="INSERTINTO`layout`(`ip`,`hex`,`kleur`,`generated`)VALUES(':ip',':hex',':kleur',':generated')";
}
$stmt=$db->prepare($sql);
$stmt->bindParam(':ip',$_SERVER['REMOTE_ADDR']);
$stmt->bindParam(':hex',$_SESSION['layout']['hex']);
$stmt->bindParam(':kleur',$_SESSION['layout']['kleur']);
$stmt->bindParam(':generated',$_SESSION['layout']['generated']);
$beginTransaction=true;
$db->beginTransaction();
$stmt->execute();
$db->commit();
het bindParam gedeelte is dus hetzelfde voor insert en update.
deze code wordt gedraait in de CSS (die dus een php pagina is, met een header en mod_rewrite, zodat het op elke nodige pagina automatisch zit :))
mijn vraag is dus, waarom krijg ik die foutmelding? en hoe kan ik dat oplossen.
alvast bedankt
//Jeroen
Toevoeging op 18/08/2010 12:25:02:
Waarom is het een dubbelpost?
ben ik niet intelligent genoeg om gewoon 1 te plaatsen :') ?
reageer aub in dit topic:
http://www.phphulp.nl/php/forum/topic/pdo-update-invalid-parameter-number-parameter-was-not-defined/72627/last/
dit topic kan gesloten/verwijdert worden
Er zijn nog geen reacties op dit bericht.