Неизвестный столбец «base64str» в «списке полей», но поле существует в базе данных и везде

#mysql #node.js #base64

Вопрос:

Я продолжаю получать это как ошибку

 D:node_appsfinanceplusgt;node financeplus.js App running on Port: 7000 D:node_appsfinanceplusnode_modulesmysqllibprotocolParser.js:437  throw err; // Rethrow non-MySQL errors  ^  Error: ER_BAD_FIELD_ERROR: Unknown column 'base64str' in 'field list'  at Query.Sequence._packetToError (D:node_appsfinanceplusnode_modulesmysqllibprotocolsequencesSequence.js:47:14)  at Query.ErrorPacket (D:node_appsfinanceplusnode_modulesmysqllibprotocolsequencesQuery.js:79:18)  at Protocol._parsePacket (D:node_appsfinanceplusnode_modulesmysqllibprotocolProtocol.js:291:23)  at Parser._parsePacket (D:node_appsfinanceplusnode_modulesmysqllibprotocolParser.js:433:10)  at Parser.write (D:node_appsfinanceplusnode_modulesmysqllibprotocolParser.js:43:10)  at Protocol.write (D:node_appsfinanceplusnode_modulesmysqllibprotocolProtocol.js:38:16)  at Socket.lt;anonymousgt; (D:node_appsfinanceplusnode_modulesmysqllibConnection.js:88:28)  at Socket.lt;anonymousgt; (D:node_appsfinanceplusnode_modulesmysqllibConnection.js:526:10)  at Socket.emit (events.js:400:28)  at addChunk (internal/streams/readable.js:290:12)  --------------------  at Pool.query (D:node_appsfinanceplusnode_modulesmysqllibPool.js:199:23)  at D:node_appsfinanceplusfinanceplus.js:77:8  at Layer.handle [as handle_request] (D:node_appsfinanceplusnode_modulesexpresslibrouterlayer.js:95:5)  at next (D:node_appsfinanceplusnode_modulesexpresslibrouterroute.js:137:13)  at Route.dispatch (D:node_appsfinanceplusnode_modulesexpresslibrouterroute.js:112:3)  at Layer.handle [as handle_request] (D:node_appsfinanceplusnode_modulesexpresslibrouterlayer.js:95:5)  at D:node_appsfinanceplusnode_modulesexpresslibrouterindex.js:281:22  at Function.process_params (D:node_appsfinanceplusnode_modulesexpresslibrouterindex.js:335:12)  at next (D:node_appsfinanceplusnode_modulesexpresslibrouterindex.js:275:10)  at urlencodedParser (D:node_appsfinanceplusnode_modulesbody-parserlibtypesurlencoded.js:82:7) {  code: 'ER_BAD_FIELD_ERROR',  errno: 1054,  sqlMessage: "Unknown column 'base64str' in 'field list'",  sqlState: '42S22',  index: 0,  sql: "INSERT INTO financeplusacct (fullname, address, city,state, tel,email,nationalID,gender,birth_date, bal, ccy, accNum, base64str) VALUES ('Allen Hommer','102 Whitewater Road','Smithfield','North Carolina','(919)800-3322','a.hommer@aol.com','A89360','Male','2021-11-03','2500','USD','00343515949','data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD.........')" }  D:node_appsfinanceplusgt;  

Информация не сохраняется в базе данных Mysql. Я создал таблицы для размещения base64str, И просто добавив их, я получаю эту ошибку

код для вставки в базу данных

 app.post('/api/createaccount',function(req,res){  var prologue = '00343'; var digits = Math.floor(Math.random() * 900000)   100000; var accNum = prologue   digits;  var fullname = req.body.fullname; var address = req.body.address; var city = req.body.city; var state = req.body.state; var tel = req.body.tel; var email = req.body.email; var nationalID = req.body.nationalID; var gender = req.body.gender; var birth_date = req.body.birth_date; var bal = req.body.bal; var ccy = req.body.ccy; var base64str = req.body.base64str;   dbConn.query('INSERT INTO financeplusacct (fullname, address, city,state, tel,email,nationalID,gender,birth_date, bal, ccy, accNum, base64str) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)',[fullname, address, city,state, tel,email,nationalID,gender,birth_date, bal, ccy, accNum, base64str], function (error, results, fields){  if (error) throw error;  return res.send({error: false,data: results, message: 'Account setup Complete'})  }); });  

Теперь вызываем REST api из интерфейса React JS следующим образом

 function createCustomerAcc(){  let base64str = localStorage.getItem('postImage');  let item = {fullname, address, city, state, tel, email, nationalID, gender, birth_date, bal,ccy, base64str};  fetch('http://localhost:7000/api/createaccount',{  method : 'POST',  mode : 'cors',  headers:{  'Accept': 'application/json',  'Content-Type': 'application/json',  },  body: JSON.stringify(item)  }).then((response) =gt; response.json())  .then((responseJson) =gt;{  if(responseJson.message =='Account setup Complete'){  alert('Account Setup Complete');  }else{  alert(responseJson.message);  }  }).catch((error)=gt;{  console.error(error);  }) }  

Выдает мне эту ошибку в консоли. Почему это так? Пожалуйста, что я должен сделать в этом случае? Он выдает ошибку MySQL, и я не вижу, откуда берется проблема, так как даже столбец существует в базе данных. И самое забавное, что Колонка существует во всех областях. Пожалуйста, что я не так понимаю?

Правки

Таблица СОЗДАНИЯ представлена в виде

 CREATE TABLE `financeplusacct` (  `id` int(11) NOT NULL,  `fullname` varchar(150) NOT NULL,  `address` varchar(300) NOT NULL,  `city` varchar(150) NOT NULL,  `state` varchar(150) NOT NULL,  `tel` varchar(150) NOT NULL,  `email` varchar(150) NOT NULL,  `nationalID` varchar(150) NOT NULL,  `gender` varchar(150) NOT NULL,  `birth_date` varchar(150) NOT NULL,  `ccy` varchar(150) NOT NULL,  `bal` decimal(18,2) NOT NULL,  `accNum` varchar(150) NOT NULL,  `base64str` text NOT NULL,  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;  

Комментарии:

1. Показать выходные данные SHOW CREATE TABLE financeplusacct;

2. @Barmar пожалуйста, смотрите Правки

3. «Неизвестная колонка…» не может быть яснее. Пожалуйста, убедитесь, что вы просматриваете правильную таблицу в правильной базе данных. И посмотрите, действительно ли это поле существует или нет.