insert via PHP werkt niet.

Status
Niet open voor verdere reacties.

davidtos

Gebruiker
Lid geworden
30 jun 2010
Berichten
71
goede middag,

ik probeer met deze code een record te vullen in mijn MySQL database maar dit lukt steeds niet. de
query die ik gebruik heb ik uit phpMyAdmin gekopieerd omdat ik denk dat deze altijd wel werken.
maar het probleem is dat het steeds "die('error');" uitvoert.

hoe zou ik dit kunnen oplossen ?

alleen "nmelkid" is een primary key en heeft auto nummering.

PHP:
<?php
	$con = mysql_connect("localhost","****","***");
	if (!$con)
	  {
		die('Could not connect: ' . mysql_error());
	  }

	mysql_select_db("my_db", $con);

	$sql = "INSERT INTO `melk aanvoer`.`nmelk` (`nboerderij`, `nmelkid`, `nvet`, `nophaaldatum`, `nophaaltijd`, `nliters`, `nmelkrijder`, `nmelkwagen`, `ntemperatuur`) 
     VALUES
      (\'1\', NULL, \'1\', \'1\', \'1\', \'1\', \'1\', \'1\', \'1\');";


	if (!mysql_query($sql,$con))
	  {
		die('error');
	  }
	echo "";

	mysql_close($con)
	
?>
 
Heet de database `melk aanvoer`.`nmelk` of zijn dit 2 verschillende
Volgens mij kun je de aanhalingstekens ook weglaten.

Code:
$con = mysql_connect('localhost','****','***');
        mysql_select_db('my_db',$con);
	
      $sql="INSERT INTO melk aanvoer (nmelk, nboerderij, nmelkid, nvet, nophaaldatum, nophaaltijd, nliters, nmelkrijder, nmelkwagen, ntemperatuur)
 
de database heet "melk aanvoer" en nmelk is er een kolom van.
 
Dan moet je my_db vervangen door Melk aanvoer

en wordt $sql="INSERT INTO nmelk (nboerderij, nmelkid, nvet, nophaaldatum, nophaaltijd, nliters, nmelkrijder, nmelkwagen, ntemperatuur)
 
kijk ook eens naar het soort aanhalings tekens dat je gebruikt. die van jou staan een beetje schuin, heel mooi voor een tekst maar fout in een code:

"`melk aanvoer`.`nmelk`"

` Schuin
' Recht
"
 
Dat heten backticks, die overigens niet nodig zijn.
Je primaire sleutel (met autonummering) hoef je niet in de SQL te vermelden. Je database houdt bij wat de volgende record als waarde moet krijgen.
De SQL is als volgt:
PHP:
mysql_select_db("aanvoer", $con);

$sql = "
INSERT INTO nmelk
(nboerderij, nvet, nophaaldatum, nophaaltijd, nliters, nmelkrijder, nmelkwagen, ntemperatuur) 
VALUES
('1', '1', '1', '1', '1', '1', '1', '1')";

if (!mysql_query($sql))
{
    die(mysql_error());
}

mysql_close($con);

Bij mysql_select_db had je 'my_db' staan. Neem aan dat dat ergens op internet stond wat je over het hoofd gezien hebt. (Wat niet uit maakt!)
Ook vereist mysql_query geen tweede argument (connection). Als je geen verbinding specialiseert zal het simpelweg de laatste verbinding die gemaakt is pakken. Het is bedoeld voor wanneer je meerdere verbindingen gebruikt.

- Tim
 
u vergeet ; om uitvoer te laten starten

dit niet
VALUES
('1', '1', '1', '1', '1', '1', '1', '1')"
maar dit
VALUES('1', '1', '1', '1', '1', '1', '1', '1')"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan