首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MYSQL -插入错误,字段列表中有未知列

MYSQL -插入错误,字段列表中有未知列
EN

Stack Overflow用户
提问于 2013-03-30 03:45:39
回答 4查看 43.9K关注 0票数 6

我一直从这个简单的mysql语句中得到以下错误,我不明白为什么。我敢肯定这是显而易见的事情。

代码语言:javascript
运行
复制
require_once("connect.php");

$query = mysql_query("SELECT * FROM accounts ORDER BY id DESC LIMIT 1");
$row = mysql_fetch_assoc($query);

$balanceold = $row['balance'];
$difference = $_POST['predec'].".".$_POST['dec'];

$category = $_POST['category'];
$notes = $_POST['notes'];

if(isset($_POST['in'])){
$balancenew = $balanceold + $difference;
$query = mysql_query("INSERT INTO accounts(currentbalance, balancein, category, notes) VALUES (".$balancenew.", ".$difference.", ".$category.", ".$notes.")");  
if($query){
header("Location: budget.php"); 
}
else{
die(mysql_error());
}
}

给出错误:'field list‘中的未知列'payday’

这是我的表单代码:

代码语言:javascript
运行
复制
<form action=process.php method=post>

&pound;
<input type=text name=predec size=7>
. 
<input type=text name=dec size=4 value=00>
<br />
<select name=category>
<option value=payday>Payday</option>
</select>
<input type=text name=notes size=20>
<input type=submit name=in value=Deposit>
<input type=submit name=out value=Withdraw>
</form> 

数据库表accounts包含以下字段:

id,整型主A_I

balancein,十进制10,2

平衡输出,十进制10,2

当前余额,十进制10,2

类别,varchar 50

备注,varchar 255

日期,时间戳

...in该订单

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-30 03:48:20

试试这个(用单个配额将每个变量包含在查询中):

代码语言:javascript
运行
复制
mysql_query("INSERT INTO accounts(currentbalance, balancein, category, notes) 
          VALUES ('$balancenew', '$difference', '$category', '$notes')");  

最好使用mysqliPDO来防止SQL注入攻击,目前可以使用mysql_real_escape_string():

代码语言:javascript
运行
复制
$balancenew = mysql_real_escape_string($balancenew);

以及其他变量。

票数 14
EN

Stack Overflow用户

发布于 2014-04-16 21:20:01

这是因为您的INSERT查询中存在语法错误。字符串和日期值将传递给SQL单引号,而不是双引号.或字符串连接字符也不是必需的。所以根据你提供的数据,它可能是

代码语言:javascript
运行
复制
$query = mysql_query("INSERT INTO accounts(currentbalance, balancein, category, notes) 
                      VALUES ($balancenew, $difference, '$category', '$notes')");  
票数 1
EN

Stack Overflow用户

发布于 2013-03-30 03:47:13

基本上,sql告诉您,您在insert中引用了数据库中未定义的列。提供您的表结构或确保列名与您在数据库中定义的完全相同。HTH。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15710397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档