[英]SQLSTATE[42S22]: Column not found: 1054 Unknown column
我正在尝试使用 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”
这无疑是这个问题的简单解决方案,但我似乎看不到它,有人能指出我正确的方向吗?
我相信这是因为您正在为您的价值观使用反引号。 将它们更改为单引号,您应该会很好
$sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`)
VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')";
如果您需要更多信息,请参阅有关单引号与反引号的 SO 问题
` 用于指定字段,您必须对值使用单引号'
。
$sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`)
VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')";
$sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`)
VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')";
仅对字段使用 ` ,对值使用 '
对于其他为此而苦苦挣扎的人,这就是为什么我看到此错误消息以及我如何解决它的原因:
您所要做的就是转到您的表并添加列(对我而言,我是在 phpmyadmin 中执行此操作的)。
从我收到的错误消息中,我可以推断出需要附加列pricing_formula 的是'properties' 表。 只需将此列直接插入数据库即可。
作为参考,这是我的错误消息:
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pricing_formula' in
'field list' (SQL: select `site`.`name`, `domain`, `site`.`uuid`,
`pricing_formula`, `client`.`uuid` as `clientRef` from `site` inner join
`client` on `site`.`client_id` = `client`.`id` where `client_id` = 1 and
`site`.`deleted_at` is null)"
希望这可以帮助某人。 如果有人仍然不完全知道如何解决这个问题,但认为我的解释描述了他们的问题,请联系 - 我会尽力帮助你解决它。
同样作为信息,这是一个带有 Angular 前端的 Laravel 后端项目。
用这个更新你的模型:
public $timestamps = false;
发生这种情况是因为 Eloquent 函数将 'updated at' 属性添加到您的查询中,即时间戳,这将引发此错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.