簡體   English   中英

字段列表中的未知列“X”

[英]unknown column 'X' in field list

我想通過php在mysql中添加一行。

簡而言之,代碼如下所示:

$email = mysqli_real_escape_string($mysqli, $_POST['email']);

        $token = md5(uniqid(rand(), true));


            $mysqli->query('SET NAMES utf8');

            $insertsignup = "INSERT INTO `betasignup`(`signupDate`, `email`, `token`, `activated`) SELECT CURDATE(), '" . $email . "', '" . $token . "', 'N';";
            echo $insertsignup;

            $insert = $mysqli->query($insertsignup) or          
                die(mysqli_error($mysqli));

插入了“echo”以調試查詢。

輸出:

INSERT INTO betasignup ( signupDate , email , token , activated ) SELECT CURDATE(), 'username@email.com', '58d15fe49629b3942a58acfb64a0cb07', 'N';

其次是:

“字段列表”中的未知列“令牌”

這是表:

CREATE TABLE IF NOT EXISTS `betasignup` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `signupDate` date NOT NULL,
  `email` text NOT NULL,
  `token` text NOT NULL,
  `activated` enum('Y','N') NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

當插入到 phpmyadmin 或 mysql-commandline 時,查詢工作完美。

在本地主機開發環境中它可以工作,而在實時(網絡)中則不能。

有任何想法嗎?

您的生產數據庫可能與您的開發環境中的數據庫不相似? 它顯然缺少“令牌”字段。

找到了:

只是將整個事情從網絡主機轉移到自己的根服務器,並沒有更新我的大腦......

數據庫也被移動到根服務器。 phpmyadmin 仍然是網絡主機...

當然,缺少“令牌”列。

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM