【问题标题】:PHP/MySQL - Error --> Unknown column '' in 'field list'PHP / MySQL - 错误 - >“字段列表”中的未知列“”
【发布时间】:2013-12-17 00:20:31
【问题描述】:

我已经阅读了很多关于“字段列表”中的“未知列”错误的帖子,当我尝试插入到我的数据库中时,我遇到了错误。我阅读的所有帖子,错误包括似乎有问题的列名。在我的情况下,它只是''......什么都没有!

我手工编写所有代码,因为我不是“真正的”程序员,而且我使用免费的东西,例如 Notepad++。我没有任何调试工具。

下面是我的代码。我有很多重复的台词,所以我删掉了一些。

<?php
//Connect to database
include("../ConfigFiles/ConnectDB_local_i.php");

//Populating the variables
$InvoiceNo = $_POST["nInvoiceNo"];
$InvoiceDate = $_POST["nDate"];
$ClientName = $_POST["nName"];
$ClientAddress = $_POST["nAddress"];
$ClientPhone = $_POST["nPhone"];
$ClientEmail = $_POST["nEmail"];
$STotalTaxable = $_POST["nSTotalTax"];
$TPS = $_POST["nTPS"];
$TVQ = $_POST["nTVQ"];
$STotalNonTaxable = $_POST["nSTotalNoTax"];
$TotalInvoice = $_POST["nTotalNet"];
$DescLine_1 = $_POST["nDescLine1"];
            ---I cut lines 2 though 14.  They are all the same ---
$DescLine_15 = $_POST["nDescLine15"];
$TotalLine_1 = $_POST["nTotalLine1"];
           ---I cut lines 2 though 14.  They are all the same ---
$TotalLine_15 = $_POST["nTotalLine15"];

//Writting to DB
echo "<br>I wrote to the database<br>";
$query = "INSERT INTO `invoicedata_table` 
            (`InvoiceNo`, 
            `InvoiceDate`, 
            `ClientName`, 
            `ClientAddress`,  
            `ClientPhone`,  
            `ClientEmail`,
            `STotalTaxable`,
            `TPS`,
            `TVQ`,
            `STotalNonTaxable`,
            `TotalInvoice`,
            `DescLine_1`,
           ---I cut lines 2 though 14.  They are all the same ---
            `DescLine_15`,
            `TotalLine_1`,
           ---I cut lines 2 though 14.  They are all the same ---
            `TotalLine_15`) 
        VALUES 
            ('$InvoiceNo',
            '$InvoiceDate',
            '$ClientName',
            '$ClientAddress',
            '$ClientPhone',
            '$ClientEmail',
            '$STotalTaxable',
            '$TPS',
            '$TVQ',
            '$STotalNonTaxable',
            '$TotalInvoice',
            `$DescLine_1`,
           ---I cut lines 2 though 14.  They are all the same ---
            `$DescLine_15`,
            `$TotalLine_1`,
           ---I cut lines 2 though 14.  They are all the same ---
            `$TotalLine_15`);";
$mysqli->query($query) or die($query.'<br />'.$mysqli->error);

//Close the DB connection
$mysqli->close();

?>

【问题讨论】:

  • 您在VALUES 列表的中途切换引号:它应该是'$DescLine_1'(可能是它之后的所有其他引号),而不是现在它周围的反引号。另外:大多数调试工具都是免费的。很好。
  • 最后 4 个值使用 ` 而不是 '
  • Wrikken,单引号的反引号是问题所在。请提交您的评论作为答案,以便我接受。谢谢。还有...题外话,你会推荐一个简单的调试器来处理什么?
  • 好的 Flyer,Wrikken 还没有回答。你有同样的答案。如果您想要答案,请继续,我会接受第一个通过的。
  • 我应该使用 @ 来确保您收到我的评论。 @Wrikken

标签: php mysql error-handling


【解决方案1】:

我已经面临同样的挑战 2 天,我找到的解决方案是更改我的 sql 数据库的 COLLATION。我将拉丁通用 ci 与 utf8 通用 ci 混合在一起。我只是将phpmyadmin中的所有内容都更改为utf8 general ci,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多