Hallo,

ik heb thuis een testserver draaien met Abyss Web Server, en de nieuwste PHP en MySQL-versie. Alles werkt (aangezien phpMyAdmin het doet), maar er is één ding dat ik niet kan doen: data toevoegen aan een tabel (trouwens wel via phpMyAdmin).
Ik kan via een script wel tabellen maken, maar het invoeren van data lukt niet. Met alle scripts die ik tot nu toe heb geprobeert krijg ik de melding dat het toevoegen niet is gelukt. Aan de rechten kan het niet liggen, want ik log in als root met alle rechten. Het gekke is: mijn broer heeft ook een server (maar dan ook web-server), en daar heeft hij hetzelfde probleem!

Heeft iemand dit ook (gehad) of heeft hij een oplossing?
or die(mysql_error()) geeft?
Dit is een stukje van een forumscript dat ik van deze site heb (http://www.phphulp.nl/php/scripts/6/54/). Volgens mij zou het gewoon moeten werken!

$sql = "INSERT INTO topics SET id = '', titel = '" . $_POST['tit_el'] . "', bericht = '" . $_POST['beri_cht'] . "', datum = '" . $datum . "', naam = '" . $_POST['na_am'] . "'";
$res = mysql_query($sql);

if ($res)
{
echo "Topic toegevoegd! Ga naar het <a href=\"topics.php\">topic overzicht</a>";
}
else
{
echo "Topic <b>niet</b> toegevoegd! Probeer het <a href=\"" . $PHP_SELF . "\">opnieuw</a>";
}

Hier geeft hij als resultaat: Topic niet toegevoegd! etc
En maak je toevallig ook nog verbinding met je sql server?
Dit script zit ge-include. Hij geeft geen foutmelding...

<?php // mysql connectie
$user = "root";
$dbpass = "****";
$host = "localhost";
$dbdb = "jeugd";

if (!mysql_select_db($dbdb, mysql_connect($host, $user, $dbpass)))
{
echo "Database connectie mislukt.";
exit();
}
?>
Offtopic: Hoe kun je in vredesnaam zulke beroerde namen verzinnen:
$_POST['tit_el']
$_POST['beri_cht']
$_POST['na_am']
Dit betekent dat je een text-veld de naam 'tit_el' hebt gegeven. Waar zijn die underscores in hemelsnaam goed voor??? Een ingebouwde garantie op bugs, problemen, frustratie en nog meer ellende? Daar lijkt het wel op...

Verder gebruik je een ongelukkige variant van SQL, dit is niet echt dé manier om een INSERT-query te noteren. Dit is beter:

INSERT INTO
  tabelnaam(
    kolom1,
    kolom2
  )
VALUES(
  'waarde 1',
  'waarde 2'
)

Veel succes
Zoals ik al zei: ik heb 'et script van deze site. Dus je moet de vraag aan iemand anders stellen!
$res = mysql_query($sql);

vervangen door:

$res = mysql_query($sql) or die(mysql_error());

en dan eens kijken wat er gebeurt
En krijg je dan wel databaseconnectie mislukt, of niet?

voeg anders even een else toe.

<?php
if (!mysql_connect($host, $user, $dbpass))
{

exit('Database connectie mislukt');
}

if(!mysql_select_db($dbdb))
{
wxit('Kan databas niet selecteren';
}
?>
Hmmmn, d'r zit een foutje in et script. Oorzaak wordt gezocht:

Table 'jeugd.topics' doesn't exist

Hij zou naar my_forum moeten zoeken, niet topics...
____
EDIT
____
Volgens mij klopt er wel meer niet aan dit script. Ik ga em ff verder nakijken! Ik bericht nog wel of et goed gaat!

Reageren