MySql

MySQL SQLSTATE [42S22] : 컬럼을 찾을 수 없음 : 1054 알 수없는 컬럼

베이스 공부 2021. 2. 15. 13:30
반응형

PDO를 사용하여 MySQL에 레코드를 삽입하려고합니다. 내 SQL 문은 다음 코드에서 볼 수 있습니다.

<?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();
        }
?>

이 코드가 실행되면 다음 오류 메시지가 나타납니다.

SQLSTATE [42S22] : 컬럼을 찾을 수 없음 : 1054 알 수없는 컬럼 'John'in '필드 목록'

이것은 의심의 여지 없이이 문제에 대한 간단한 해결책이지만 나는 그것을 볼 수없는 것 같습니다. 누구나 올바른 방향으로 나를 가리킬 수 있습니까?

 

해결 방법

 

나는 이것이 당신의 가치에 백틱을 사용하고 있기 때문이라고 생각합니다. 작은 따옴표로 변경하면 좋을 것입니다.

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


 

참조 페이지 https://stackoverflow.com/questions/10129120

 

 

반응형