Hjälp INSERT * INTO(phpmysql) fungerar inte!

Permalänk
Medlem

Hjälp INSERT * INTO(phpmysql) fungerar inte!

Jag har använt mig av nickfrostys tutorial på youtube och försökt göra en databas gästbok. Jag har gjort några justeringar för att passa mitt projekt men ser själv inga fel i koden, ändå så fungerar det inte att lägga in ett nytt inlägg i min databas via PHP.

Här är min kod

<?php // tar bort felmeddelande som kan uppfattas som fel men är inte fel error_reporting(E_ALL ^ E_NOTICE); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Gästbok</title> </head> <body> <?php // skapar koppling till databasen mysql_connect("localhost", "root", ""); // väljer själva databasen mysql_select_db("guestbook"); echo "<h1>Lägg till nya meddelanden</h1>"; // hämtar värden från formuläret och deklarerar variabler if($_POST['add']){ $name = mysql_real_escape_string($_POST['name']); $email = mysql_real_escape_string($_POST['email']); $message = mysql_real_escape_string($_POST['message']); if($name && $email && $message){ $time = date("h:i A"); $date = date("F d, Y"); // lägger till i databasen mysql_query("INSERT INTO 'guestbook' 'guestbook2'('id', 'name', 'email', 'message', 'time', 'date') VALUES ([$id],[$name],[$email],[$message],[$time],[$date])"); echo "Ditt inlägg har lagts till"; } else echo "Du måste fylla i all information"; } // formulär för att lägga in nytt inlägg echo "<form action='guestbook2_admin.php' method='post'> Namn: <br /> <input type='text' name='name' /> <br /><br /> E-post: <br /> <input type='text' name='email' /> <br /><br /> Meddelande: <br /> <textarea name='message' style='height: 100px'></textarea> <br /><br /> <input type='submit' name='add' value='lägg till' /> </form> <br /> <h2>Inlägg</h2> <hr /> "; // väljer tabell $query = mysql_query("SELECT * FROM guestbook2 ORDER BY id DESC"); $numrows = mysql_num_rows($query); // om det finns inlägg i databasen skriver vi ut dem if($numrows > 0){ while($row = mysql_fetch_assoc($query)){ $id = $row['id']; $name = $row['name']; $email = $row['email']; $message = $row['message']; $time = $row['time']; $date = $row['date']; // Funktion som byter rad om texten i meddelendat byter rad $message = nl2br($message); // skriver ut meddelande och info echo "<div> Av <b>$name</b> - klockan <b>$time</b>, <b>$date</b> <br/> $message <a href='guestbook2_delete.php'>Ta bort inlägg</a> </div> <hr />"; } } // om inga inlägg finns else echo "inga inlägg hittades"; ?> </body> </html>

Visa signatur

[CPU: i7 2700K] [GPU: GTX 580 3GB Phantom ] [PSU: Corsair AX 850W] [Chassi: NZXT Lexa S] [SSD: Corsair FORCE 3] [Corsair XMS3 4x4GB 1666MHz]

Permalänk
Hedersmedlem

Du verkar ha ett extra 'guestbook2'; är det meningen?

Permalänk
Medlem

Du har en extra 'guestbook2', kan det vara där felet är.
Du definerar även aldrig $id som du vill köra en INSERT på, testa sätt ett tomt värde istället då jag antar du har auto_increment på den.

Undrar även varför alla värden är inom hakparanteser [ och ]

EDIT: Typiskt, lite för sen.

Permalänk
Medlem

Kommer inte svara på din fråga då du verkligen INTE bör använda mysql_* eller mysqli_* funktionerna.

Använd istället PDO eller mycket hellre prepared statements.
Att skriva SQL direkt i koden skapar extrema säkerhetsproblem.

Permalänk
Medlem
Skrivet av Pie-or-paj:

Kommer inte svara på din fråga då du verkligen INTE bör använda mysql_* eller mysqli_* funktionerna.

Använd istället PDO eller mycket hellre prepared statements.
Att skriva SQL direkt i koden skapar extrema säkerhetsproblem.

Inga större fel på mysqli_* funktionerna om man använder dessa rätt.
mysql_* kan jag däremot förstå då dessa blivit deprecated sedan PHP 5.5.0

Men jag kan hålla med om att använda PDO, även om han är nybörjare är det bättre att ta det i början istället för senare.