2016-04-19 9 views
0

Ich versuche, eine einfache Shoutbox für ein Schulprojekt zu machen.MYSQL INSERT INTO erzeugt einen Fehler: Sie haben einen Fehler in Ihrer SQL-Syntax

Alles scheint gut zu funktionieren, außer wenn ich versuche, eine Nachricht zu senden. Meine SQL-Abfrage ist einfach, scheint aber aus irgendeinem Grund nicht zu funktionieren.

database

<?php 
session_start(); 
require_once("includes/connect.db.php"); 

$sql = "SELECT * FROM shoutbox"; 
$result = mysql_query($sql); 

echo '<table border=1>'; 
while($rows = mysql_fetch_assoc($result)){ 
    $sb_username = $rows['username']; 
    $sb_message = $rows['message']; 
    $sb_sent_time = $rows['sent_time']; 
    echo '<tr><td>' . $sb_username . ': </td><td>' . $sb_message; 
} 
echo '</table>'; 
?> 
<form method=post action=shoutbox.php> 
    <input type=text name="message"> 
    <input type=submit value="Send!"> 
</form> 

<?php 
if(isset($_POST['message'])){ 
    $date = time(); 
    $message = mysql_real_escape_string(htmlentities($_POST['message'])); 
    $username = $_SESSION['user_name']; 
    $sql = "INSERT INTO shoutbox ('username', 'message', 'time_sent') VALUES ('$username', '$message', '$date')"; 
    mysql_query($sql) or die(mysql_error()); 
} 

?> 

erzeugt den folgenden Fehler: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, um die richtige Syntax für 'Benutzername', 'Nachricht', 'Zeit_Empfang' zu verwenden. VALUES ('c4sper', 'Hallo', '1461107151') bei Zeile 1

+2

Einfache Anführungszeichen sind für Werte. Ihre Spaltennamen sollten mit Backticks versehen werden. (\ username \ ', \ message \', \ time_sent \ ') – bassxzero

Antwort

1

Ersetzen Sie die folgende Zeile in Ihrem Code mit dieser neuen:

$sql = "INSERT INTO shoutbox (`username`, `message`, 'time_sent') VALUES ('$username', '$message', '$date')"; 

Hinweis: Verwenden Sie `` (Backticks) statt '' (Zitate) um Ihres Tabellenspalte (Felder) Namen in Ihrer INSERT Abfrage.

Für eine detaillierte Anleitung, Werfen Sie einen Blick auf:

When to use single quotes, double quotes, and backticks in MySQL

1

Sie verwenden einfache Anführungszeichen (') um die Feldnamen - es sollte stattdessen das `(Backtick) -Symbol sein.

Verwandte Themen