sql form maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerhard timmerman

gerhard timmerman

21/03/2012 13:52:35
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
<?php
$db
= new PDO('mssql:host=localhost\snelstart;dbname=laadlos','test','gerhardwinxp');

$sql="INSERT INTO relaties (bedrijfsnaam, debiteur_id,)
 VALUES
 ('$_POST[bedrijfsnaam]','$_POST[debiteur_id]')"
;
 if (!mssql_query($sql,$con))
   {

   die('Error: ' . mssql_error());
   }

 echo "acite geslaagt";
 
mssql_close($con)
 
 ?>


ik krijg zodra ik dit heb utigevoerd direct http 500 error wat gaat hier fout
 
PHP hulp

PHP hulp

22/12/2024 22:43:55
 
Reshad F

Reshad F

21/03/2012 14:08:55
Quote Anchor link
haal je variablen buiten quotes regel 6 zet bedrijfsnaam en debiteur_id tussen ' op dezelfde regel

"die" is geen nette foutafhandeling gebruik die wel.

en acite = actie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$sql
="INSERT INTO relaties (bedrijfsnaam, debiteur_id)
 VALUES
 ('"
.$_POST['bedrijfsnaam']."','".$_POST['debiteur_id']."')"; ?>
Gewijzigd op 21/03/2012 14:12:47 door Reshad F
 
Erwin H

Erwin H

21/03/2012 14:09:07
Quote Anchor link
Waarom gebruik je PDO en mssql functies door elkaar?

Toevoeging op 21/03/2012 14:10:10:

Laatste komma op regel 4 kan ook weg.
 
- SanThe -

- SanThe -

21/03/2012 14:22:36
Quote Anchor link
Puntkomma op regel 13 ontbreekt en het script is lek.
 
Reshad F

Reshad F

21/03/2012 14:23:23
Quote Anchor link
met andere woorden, gooi het in de prullenbak?
 
Chris PHP

Chris PHP

21/03/2012 14:31:46
Quote Anchor link
Even een vraag.

Je opent een nieuwe PDO connectie en declareerd die aan $db.

Moet je dan niet ALS je de link gebruikt de $db gebruiken ipv $con? Ik zie namelijk nergens een include of dat je $con declareerd.

Ook bij de mysql_close gebruik je de $con, ook hier lijkt het me dat je $db moet gebruiken.
 
Gerhard timmerman

gerhard timmerman

21/03/2012 14:36:49
Quote Anchor link
ik heb hem werkend

Toevoeging op 21/03/2012 14:55:37:

Gerhard timmerman op 21/03/2012 14:36:49:
ik heb hem werkend maar ik weet dat hij lek is maar daar moet nog wat aan gebeuren

en chris je hebt gelijk dat had ik in de eerste instancie fout
ik heb hem nu op deze manier en nu is hij werkend ik weet dat hij nog lek is maar daar gebeurt nog wat aan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$db
= new PDO('mssql:host=localhost\snelstart;dbname=laadlos','test','gerhardwinxp');


$sql="INSERT INTO relaties (bedrijfsnaam, debiteur_id)
 VALUES
 ('"
.$_POST['bedrijfsnaam']."','".$_POST['debiteur_id']."')";
 $results = $db->exec($sql);
 
 ?>

nu wil ik dat er een foutmelding komt als hij niet en anders een bevestiging een if en else zeg maar net als ik eerst met die probeerde alleen wou niet werken. Weet iemand wat ik daar goed voor kan gebruiken dat hij niet alleen een fout geeft als er geen verbinding is maar ook als het niet in de tabel word toegevoegd
Gewijzigd op 21/03/2012 15:02:03 door gerhard timmerman
 
Reshad F

Reshad F

21/03/2012 15:45:01
 
Erwin H

Erwin H

21/03/2012 16:54:26
Quote Anchor link
Je gebruikt het exec() statement van PDO, waarmee je al kan zien of een insert gelukt is of niet. exec() geeft namelijk het aantal rijen terug waar iets mee gedaan is. Is de uitkomst dus 0 dan is er iets fout gegaan, als de uitkomst 1 is dan is het goedgegaan. Als het aantal meer dan 1 is.... dan is er in jou geval waarschijnlijk ook iets niet helemaal goed gegaan...

http://www.php.net/manual/en/pdo.exec.php

Verder kan je natuurlijk nog via een try...catch block fouten opvangen.

Ook zou ik je willen aanraden eens naar prepared statements en parameter binding te kijken. Je gebruikt nu namelijk je POST variabelen zonder verdere beveiliging, met prepared statements is dat ook niet nodig.
Het aantal rijen ophalen gaat dan wel iets anders.

http://www.php.net/manual/en/pdostatement.bindparam.php

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
<?php
//prepareer het sql statement
$st = $db->prepare("INSERT INTO relaties (bedrijfsnaam, debiteur_id)
                    VALUES (:bedrijfsnaam, :debiteur)"
);

//voeg de waardes voor de parameters toe
$st->bindParam(":bedrijfsnaam", $_POST['bedrijfsnaam'], PDO::PARAM_STR);
$st->bindParam(":debiteur", $_POST['debiteur_id'], PDO::PARAM_INT);

//execute de query
$st->excecute();

//haal het aantal rijen op dat gewijzigd is
$results = $st->rowCount();
?>
 



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.