PHP PDO Skriva till databas
Hej,
Jag har skapat en simpel formulär där användaren skriver input och sedan skrivs detta ut, problemet jag får är att inget av detta sker, jag får följande felmeddelanden:
Warning: PDO::prepare(): SQLSTATE[00000]: No error: PDO constructor was not called in C:\Xampp\htdocs\Webb\Formulär.php on line 16
Fatal error: Uncaught Error: Call to a member function execute() on null in C:\Xampp\htdocs\Webb\Formulär.php:18 Stack trace: #0 {main} thrown in C:\Xampp\htdocs\Webb\Formulär.php on line 18
Behöver er hjälp nu för att underlätta felsöknin
Här är koden:
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8">
<title>dblabbd</title>
</head>
<body>
<?php
include('dblabb2.php');
if (isset($_POST['submit']))
{ // query för att lägga till name i itemtypes
$name = $_POST['addType'];
$query = "INSERT INTO itemtypes (name) VALUES (:name)"; // filtrera input
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_SPECIAL_CHARS);
$db = new DB();
$sth = $db->prepare($query);
if ($sth->execute(array(':name' => $name)))
{
echo "<h4>Itemtype added</h4>";
}
else { // om något går fel skriv ut PDO felmeddelande
echo "<h4>Error</h4>";
echo "<pre>" . print_r($sth->errorInfo(), 1) . "</pre>";
}
}
?> <h4>Add itemtype</h4> <!--Formulär för kategorier -->
<form method="post">
<input type="text" name="addType" placeholder="name">
<input type="submit" name="submit" value="Submit">
</form>
<h4>Add item</h4> <!--Formulär för föremål -->
<form method="post">
<select name="type">
<?php /* Här hämtas all data från itemtypes tabellen för * att enkelt skapa en lista över existerande itemtype * kategorier till formuläret. * Detta gör även att vi slipper uppdatera vår html när vi * lägger till nya kategorier. */
$query = "SELECT * FROM itemtypes ORDER BY name ASC";
if ($result = $db->query($query))
{
while ($row = $result->fetch(PDO::FETCH_NUM))
{ // skriv ut varje rad som en <option>
echo '<option value="' . $row['0'] . '">' . $row['1'] . '</option>';
}
} ?>
</select>
<input type="text" name="desc" placeholder="description">
<input type="submit" name="addItem" value="Submit">
</form> </body> </html>