SQLSTATE : Spalte nicht gefunden: 1054 Unbekannte Spalte

Ich versuche, einen datasatz mit PDO in MySQL einzufügen, meine SQL-statement kann im folgenden Code gesehen werden.

<?php try{ //include file myfunctions.php allows us to calls functions from it include ("myfunctions.php"); //Assign function getConnection() from myfunctions.php to variable $db $db = getConnection(); foreach($_POST['chk'] as $check_value) { $check = $check_value; $fav = "channel/item [title = \"$check\"]"; $holidayDoc = simplexml_load_file('holidays.xml'); $favourites = $holidayDoc->xpath($fav); foreach($favourites as $currentFav) { echo "{$currentFav->link}". "<br \>"; echo "{$currentFav->title}". "<br \>"; echo "{$currentFav->description}". "<br \>"; echo "{$currentFav->pubDate} ". "<br \>"; $sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) VALUES (`John`, `$currentFav->link`, `$currentFav->pubDate`, `$currentFav->title`, `$currentFav->description`)"; $db->exec($sql); $db = null; } } } catch(PDOException $e) { echo $e->getMessage(); } ?> 

Wenn dieser Code ausgeführt wird, wird folgende Fehlermeldung angezeigt:

SQLSTATE [42S22]: Spalte nicht gefunden: 1054 Unbekannte Spalte 'John' in 'Feldliste'

Dies ist zweifellos eine einfache Lösung für dieses Problem, aber ich kann es nicht sehen, kann mir jemand in die richtige Richtung zeigen?

Ich glaube, das liegt daran, dass Sie Backticks für Ihre Werte verwenden. Ändern Sie sie in einfache Anführungszeichen und Sie sollten gut sein

 $sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')"; 

Bitte beziehen Sie sich auf diese SO-Frage über einfache Anführungszeichen im Vergleich zu Backticks, wenn Sie weitere Informationen wünschen

  $sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')"; 

Verwenden Sie `nur für Felder und verwenden Sie 'für Werte

`ist für die Angabe von Feldern, müssen Sie ein einfaches Anführungszeichen für Werte verwenden.

 $sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')";