pdo update query werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »

Developer (One Data)

Do you have experience with managing IT Teams in a service delivery organization? Are you keen to bring the team and our platform to a higher level? Then Nutreco has a very interesting role for you! As a One Data developer you are responsible for the management, running and functional use of our integration landscape and processes within Nutreco. Nutreco is using at this time BizTalk 2016, and Apigee for its API management, to be replaced by Azure Integration Services as of 2023. You will be part of a virtual teams of 11 people (own and outsourced) working in an

Bekijk vacature »

Back end developer PHP

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Fullstack developer

Functie omschrijving We are looking for a dutch native speaker Wil jij werken als Senior Developer en werken aan een applicatie die duizenden marketingcampagnes automatisch aanstuurt? Dit is je kans! Kom werken voor onze opdrachtgever en in deze rol zul je veel vrijheid en verantwoordelijkheid krijgen om gezamenlijk de applicatie naar een hoger plan te tillen. Wat ga je verder doen: Optimaliseren, beheren en uitbreiden van onze applicatie; Het bouwen van aansluitingen op de systemen van partners middels API’s; Meedenken over de technische/ontwikkel-standaarden; Proactief verbeterpunten voorstellen. Bedrijfsprofiel Het is een organisatie die met een team van verschillende developers én marketeers

Bekijk vacature »

Senior Front-End Developer

Als Senior Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Senior Front-End Developer bij Coolblue? Als Senior Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Senior Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Nadenken

Bekijk vacature »

Medior Front-end Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-end Developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het uitwerken van designs tot functionele layouts Je

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Medior/senior Front-end developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

Bekijk vacature »
Tortuga web

tortuga web

22/08/2014 11:24:51
Quote Anchor link
Ik heb vanalles nagezocht, maar krijg niet gevonden waarom de query niet werkt. Dit is wat ik heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Connect to the dBase
require_once ('link to de dBase-connectionFile');
$sql_update = "UPDATE socios
    SET 'nombre' = :nombre,
    'apellidos' = :apellidos,
    'socio' = :socio,
    'email' = :email,
    'dni' = :dni
    WHERE
    'id' = $id";
$stmt = $db->prepare($sql_update);
$stmt->execute(array(':nombre'=>$nombre,
        ':apellidos'=>$apellidos,
        ':socio'=>$socio,
        ':email'=>$email,
        ':dni'=>$dni));
if($stmt->rowCount() == 0) {
    throw new PDOException ('Er zijn geen rijen gewijzigd in de UPDATE query');
}

De foutmelding geeft:
"SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; near:''nombre' = 'XXXX', 'apellidos' = 'XXX XXX', 'socio' = '00' at line 3"
Ik kom er niet uit
 
PHP hulp

PHP hulp

28/04/2024 23:16:16
 
Gerhard l

gerhard l

22/08/2014 11:27:57
Quote Anchor link
Er hoeven toch geen aanhalingstekens om nombre, appellidos enz.
 
Tortuga web

tortuga web

22/08/2014 11:32:43
Quote Anchor link
Ik heb ze weggehaald en inderdaad, de PDOerror is nu opgelost, maar de update is niet uitgevoerd, want krijg nu de melding: 'Er zijn geen rijen gewijzigd in de UPDATE query'.
Gewijzigd op 22/08/2014 11:33:46 door tortuga web
 
Gerhard l

gerhard l

22/08/2014 11:38:05
Quote Anchor link
Probeer de error op te vangen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
try {
    //code
} catch (PDOException $e) {
    throw new pdoDbException($e);
}
 
Ivo P

Ivo P

22/08/2014 11:41:44
Quote Anchor link
zijn er records met id = $id

en wat is de waarde van de ingevulde kolommen vooraf?
is dat wel anders dan wat het moet worden?

stel x = 10 voor rij met id = 1;
UPDATE tabel
SET x = 11
WHERE id = 1;
>> affected rows = 1

UPDATE tabel
SET x = 11
WHERE id = 1;
>> affected rows = 0
er is namelijk niets veranderd in de database.
 
Tortuga web

tortuga web

22/08/2014 11:43:28
Quote Anchor link
De foutmelding die ik nu krijg is uit de "if($stmt->rowCount() == 0) (regel 17 in de code hierbboven)
Daaronder heb ik een catch met de gebruikelijke PDOexceptions, waar ik de vorige foutmeldimng vandaan had. Dus daar wordt nu geen fout gegenereerd.

Toevoeging op 22/08/2014 11:50:17:

Oke, ik haal eerst de record op en stop die gegevens in een formulier. Dit werkt. In het formulier heb ik ook een hidden field (voor nu even zichtbaar) waar ik de id (autoincrement) uit de tabel in stop. Ook dit werkt. Ik zie alles goed opgehaald. Vervolgens wijzig ik één veld, (bv. nombre), maar deze wijziging wordt dus niet doorgevoerd. (voor de volledigheid heb ik ook de gegevens gecontroleerd in phpmyadmin). Kan het zijn dat ik iets niet goed doe met de $id, die heb ik weer terug opgehaald uit het formulier met $_POST['id']
 
Ivo P

Ivo P

22/08/2014 12:19:31
Quote Anchor link
op zich is het natuurlijk niet een fout of een exception (voor php) dat de query 0 rijen aanpast.

Als de query een fout oplevert, dan wel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$gelukt
= $stmt->execute( ... );

if(!$gelukt) {
   echo 'query is mislukt: <pre>';
   print_r($stmt->errorInfo();
   echo '</pre>';
}

else {
 if($stmt->rowCount() == 0) {
   echo 'er zijn geen rijen aangepast, maar dit is geen echte fout';
}


?>
Gewijzigd op 22/08/2014 12:20:10 door Ivo P
 
Tortuga web

tortuga web

22/08/2014 13:58:24
Quote Anchor link
Dat klopt. Daarom lijkt het alsof er niets mis is met de syntax, maar deze query zou wél een update van de gegevens uit moet voeren. En dat doet ie niet, maar ik snap niet waarom niet.
 
Gerhard l

gerhard l

22/08/2014 14:31:54
Quote Anchor link
Heb je bovenstaande code van Ivo P al uitgevoerd? Welke melding komt daaruit?
 
Tortuga web

tortuga web

22/08/2014 14:37:42
Quote Anchor link
Dat er geen rijen zijn aangepast
 
Ivo P

Ivo P

22/08/2014 16:05:09
Quote Anchor link
als er geen rijen zijn aangepast dan

* is de query dus qua syntax goed
* matcht alles met bestaande kolommen en tabelnamen
* heb je connectie met de database

Dat er niets is aangepast:
* er zijn geen rijen die voldoen aan de wHERE-eisen: id = $id
* er zijn wel records, maar daaraan is in feite niets aangepast.

geef je huidige script (zoals in de openingspost) nog eens.
 
Tortuga web

tortuga web

22/08/2014 16:15:30
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$id=$_POST['id'];
try {
    //Connect to the dBase
    require_once ('connect.php');
    //Make update-query for the dBase
    $sql_update = "UPDATE socios
            SET
            nombre = :nombre,
            apellidos = :apellidos,
            socio = :socio,
            email = :email,
            dni = :dni
            WHERE
            'id' = $id";
    $stmt = $db->prepare($sql_update);
    $stmt->execute(array(':nombre'=>$nombre,
            ':apellidos'=>$apellidos,
            ':socio'=>$socio,
            ':email'=>$email,
            ':dni'=>$dni));
    if($stmt->rowCount() == 0) {
        throw new PDOException ('Er zijn geen rijen gewijzigd in de UPDATE query');
    }
}
catch (PDOException $e) {
    echo '<pre>';
    echo 'Regel: ' . $e->getLine() . '<br />';
    echo 'Bestand: ' . $e->getFile() . '<br />';
    echo 'Foutmelding: ' . $e->getMessage();
    echo '</pre>';
}

De gegevens in het formulier die verzonden worden met method="post", worden opgehaald uit de dBase met een selectquery, ook de id zie ik juist weergegeven. De id in de dBase is autoincrement, dus blijft identiek, maar verzekerd mij er van dat er maar 1 record aangepast wordt, nl. die met die specifieke id.
Gewijzigd op 22/08/2014 16:20:51 door tortuga web
 
Gerhard l

gerhard l

22/08/2014 16:19:35
Quote Anchor link
Bij de where hoeft om id ook geen aanhalingstekens. En je geeft geen :id mee.
Gewijzigd op 22/08/2014 16:20:15 door gerhard l
 
Tortuga web

tortuga web

22/08/2014 16:26:06
Quote Anchor link
Ja, foutje, heb ze weggehaald.
als ik ingeef:
WHERE id=:id, dan krijg ik wel een pdo-errormessage, nl: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens op regelnr.20
als ik doe: where id=$id, waarbij $id=$_POST['id'], dan krijg ik de melding dat er niks is aangepast. Dus ik vermoed dat het daarmee te maken heeft, maar ik weet niet hoe ik het moet aanpassen.
 
Gerhard l

gerhard l

22/08/2014 16:36:38
Quote Anchor link
Verander eerst regel 14 in id = :id. Daarna :id => $_POST['id']mee geven in de array op regel 16. Als er dan niets verandert, kijken of $_POST['id'] is wat je verwacht.
 
Tortuga web

tortuga web

22/08/2014 16:38:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$stmt->execute(array(':nombre'=>$nombre,
        ':apellidos'=>$apellidos,
        ':socio'=>$socio,
        ':email'=>$email,
        ':dni'=>$dni,
        ':id'=>$id));

Ik heb de oplossing gevonden. Waarschijnlijk heb ik steeds over het hoofd gezien dat de aanhalingstekens bij id er nog stonden, want ik had deze oplossing al eerder geprobeerd, maar met foutmeldingen. Dus nu is het oed.
Dank voor jullie hulp.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.