[php/mysql] Waarom kan ik niet inserten?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:47

Knutselsmurf

LED's make things better

Topicstarter
PHP:
1
2
3
4
$link=mysql_connect ("localhost", "database", "wachtwoord") or die ("Kon geen verbinding maken met de database, vraag de systeembeheerder<BR>");
 $query=Sprintf('insert into gastenboek values (\'\', \'%s\',NOW(), NOW(), \'%s\', \'%s\')',$naam,$email,$bericht);
print $query;
mysql_query($query)  or die ("Er is iets fout gegaan. Neem contact op met de systeembeheerder.");

Met bovenstaande code probeer ik nu al tijden om een nieuw record toe te voegen aan een database. Maar telkens krijg ik echte de melding 'Er is iets fout gegaan. Neem contact op met de systeembeheerder.' Dit betekent dat er wel toegang tot de database is verkregen, anders is een andere fotmelding het gevolg. De gewenste query wordt ook netjes weergegeven. Het rare is, dat als ik PHPMySL opstart, en daar de query in copy-paste, dat deze wel wordt doorgevoerd. Bij PHPMySQL gebruik ik uiteraard exact dezelfde loginnaam en pwd als in mijn script. Maar in mijn script wordt de query dus niet goed uitgevoerd. Degene die ziet waar ik fout ga mag een biertje komen halen, want ik wordt helemaal gek... 8)7

- This line is intentionally left blank -


Acties:
  • 0 Henk 'm!

  • Krukar
  • Registratie: September 2001
  • Laatst online: 17-09 21:23
Maak van

PHP:
1
or die ("Er is iets fout gegaan. Neem contact op met de systeembeheerder.");


Eens

PHP:
1
or die (mysql_errno() . ":" . mysql_error());


Dan kun je zien wat je mysql-error is en dan is het wat makkelijker op te lossen ;)

Acties:
  • 0 Henk 'm!

  • Brothar
  • Registratie: Oktober 2000
  • Laatst online: 22-08 21:33

Brothar

meester

Ik denk .. dat de gebruiker in mysql nog geen rechten heeft om te inserten.
En dat zie je niet (en facilieer je evenmin) in deze code, maar in mySQLadmin (als ik me niet vergis - ik heb nog niet met mySQLgestoeid, maar wel ooit met SQLserver 6.5, en daar mag een gebruiker alleen die dingen waarvoor hem rechten zijn toegekend)

eagle


Acties:
  • 0 Henk 'm!

  • Krukar
  • Registratie: September 2001
  • Laatst online: 17-09 21:23
Brothar schreef op 25 oktober 2003 @ 03:47:
Ik denk .. dat de gebruiker in mysql nog geen rechten heeft om te inserten.
En dat zie je niet (en facilieer je evenmin) in deze code, maar in mySQLadmin (als ik me niet vergis - ik heb nog niet met mySQLgestoeid, maar wel ooit met SQLserver 6.5, en daar mag een gebruiker alleen die dingen waarvoor hem rechten zijn toegekend)
Hij zegt in zijn openingspost dat hij vanaf een sql client wel kan inserten met dezelfde user/pass, rechten lijken me dus prima in orde.

Acties:
  • 0 Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:47

Knutselsmurf

LED's make things better

Topicstarter
Brothar schreef op 25 October 2003 @ 03:47:
Ik denk .. dat de gebruiker in mysql nog geen rechten heeft om te inserten.
En dat zie je niet (en facilieer je evenmin) in deze code, maar in mySQLadmin (als ik me niet vergis - ik heb nog niet met mySQLgestoeid, maar wel ooit met SQLserver 6.5, en daar mag een gebruiker alleen die dingen waarvoor hem rechten zijn toegekend)
Zoiets dacht ik ook, maar als ik in PHPMyAdmin inlog als exact dezelfde gebruiker, dan lukt het wel?

- This line is intentionally left blank -


Acties:
  • 0 Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:47

Knutselsmurf

LED's make things better

Topicstarter
Knutselsmurf schreef op 25 October 2003 @ 03:54:
[...]

Zoiets dacht ik ook, maar als ik in PHPMyAdmin inlog als exact dezelfde gebruiker, dan lukt het wel?
edit:
Shoot me. Een Select_db erbij was de oplossing.
Ik meende dat dat in 1 commando kon, maar die kan ik nu niet vinden. Iemand die dat wel weet, om dit topic tot een goed einde te brengen?

- This line is intentionally left blank -


Acties:
  • 0 Henk 'm!

  • Krukar
  • Registratie: September 2001
  • Laatst online: 17-09 21:23
Och inderdaad, ik keek er ook overheen :P
Maar in 1 command kan afaik niet, uit de php manual:
mysql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if mysql_connect() was called without arguments, and use it.

Every subsequent call to mysql_query() will be made on the active database.
Die mysql_error(); die ik in de vorige post opmerkte wat vaker gebruiken is trouwens wel handig hoor ;)

Edit: je kan er natuurlijk wel een functie van maken om het in 1 keer te doen... ;)
Zoiets:

PHP:
1
2
3
4
5
6
function dbconnect($arg,$argg,$arggg,$argggg) {
 mysql_connect($arg,$argg,$arggg);  
 mysql_select_db($argggg);
}

dbconnect("localhost","root","paswoord","database");

[ Voor 23% gewijzigd door Krukar op 25-10-2003 04:51 ]


Acties:
  • 0 Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:47

Knutselsmurf

LED's make things better

Topicstarter
Websnake schreef op 25 October 2003 @ 04:14:
Och inderdaad, ik keek er ook overheen :P
Maar in 1 command kan afaik niet, uit de php manual:


[...]


Die mysql_error(); die ik in de vorige post opmerkte wat vaker gebruiken is trouwens wel handig hoor ;)
Dat was idd ook de hulp die mij op het goede spoor bracht. Dank daarvoor. Nu ben ik absoluut geen n00b op het gebied van PHP en MySQL, maar in dit geval heb ik het dus heeeeeeeeeeeeeeeeel lang over het hoofd gezien. * Knutselsmurf gaat in een hoekje zitten en zich heel hard schamen....

- This line is intentionally left blank -


Acties:
  • 0 Henk 'm!

  • slm
  • Registratie: Januari 2003
  • Laatst online: 12-11-2023

slm

het kan wel in 1 commando door een deprecated en inmiddels niet meer gedocumenteerde functie te gebruiken, namelijk mysql($db,$qry), maar zoals de term deprecated al zegt: niet meer gebruiken dus en gewoon een mysql_select_db en een mysql_query gebruiken.

To study and not think is a waste. To think and not study is dangerous.

Pagina: 1