Hej. Jag började med PHP seriöst igår, och har nu snickrat ihop en gästbok som BORDE fungera. Den läser info från en Access-databas med COM (jag har inte tillgång till mysql eller DSN på min webserver) och allt funkar helt okej med inläsandet, men nåt med skrivandet till databasen med SQL-satsen funkar inte. Kan inte direkt förklara bättre, så ni får kod och felmeddelande. Har gått igenom ett stort antal felmeddelanden och rättat massa fel, men nu är jag fast.
<html>
<head>
<title>Gästbok</title>
</head>
<body>
<form action="index.php" method="POST">
Namn: <input type="text" name="Namn"><br>
E-Mail: <input type="text" name="Email"><br>
Meddelande:<br><textarea rows="8" cols="30" name="Text"></textarea><br>
<input type="submit" name="submit">
</form>
<?php if (!isset($_POST["submit"])) {
$db_connection = new COM("ADODB.Connection");
$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".realpath("./gbdb.mdb") ."; DefaultDir=".realpath("./");
$db_connection->open($db_connstr);
$rs = $db_connection->execute("SELECT * FROM GB");
$rs_fldNamn = $rs->Fields(1);
$rs_fldEmail = $rs->Fields(2);
$rs_fldDate = $rs->Fields(3);
$rs_fldText = $rs->Fields(4);
while (!$rs->EOF) {
print "<hr>Namn: <b>$rs_fldNamn->value</b><br>E-Mail: <a href='mailto:$rs_fldEmail->value'>$rs_fldEmail->value</a><br>Date: $rs_fldDate->value<br>Message:<br>$rs_fldText->value";
$rs->MoveNext();
}
$rs->Close();
$db_connection->Close();
} else {
$db_connection = new COM("ADODB.Connection");
$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".realpath("./gbdb.mdb") ."; DefaultDir=".realpath("./");
$db_connection->open($db_connstr);
$datum = date("H:i:s Y-m-j");
$namn = $_POST["Namn"];
$email = $_POST["Email"];
$text = $_POST["Text"];
$sql = "INSERT INTO GB(Namn,Datum,Email,Text) VALUES('$namn','$email','$datum','$text')";
$db_connection->execute($sql);
$db_connection->Close();
}
?>
</body>
</html>
Felmeddelanden:
Warning: Invoke() failed: Exception occurred. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement. in h:\home\users\php\test2\index.php on line 48