NextJS Mysql läuft einwandfrei über phpmyadmin, hat aber Probleme bei der Abfrage über die API
P粉549986089
P粉549986089 2023-08-26 16:01:12
0
1
387
<p>Wie der Titel schon sagt, funktioniert mein SQL-Code in phpmyadmin, aber nicht bei Anfragen über die API. Meine API verwendet das MySQL-Paket: </p> <pre class="brush:php;toolbar:false;">npm i mysql</pre> <p>SQL-Code:</p> <pre class="brush:php;toolbar:false;">BEGIN; INSERT INTO Adressen (Adresse, Postleitzahl, Stadt, Bundesland, Land) VALUES('Etwas', 69420, 'Etwas', 'Etwas', 'Etwas'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; EINFÜGEN IN „Unternehmen“ (Eigentümer, Organisationsnummer, Name) VALUES('someid', 133769420, 'Etwas'); SELECT LAST_INSERT_ID() INTO @mysql_company_id; INSERT INTO Benutzer (Firma, Mitglied, Administrator) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails (Versandadresse, Firma, Kurzname, unsere Referenz) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something'); COMMIT;</pre> <p>Das ist in phpmyadmin völlig normal.</p> <p>我使用以下方式调用函数:</p> <pre class="brush:php;toolbar:false;">db.query( `BEGIN; INSERT INTO Adressen (Adresse, Postleitzahl, Stadt, Bundesland, Land) VALUES('Something', 69420, 'Something', 'Something', 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; INSERT INTO Companies (owner, org_nr, name) VALUES('Something', 133769420, 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_company_id; INSERT INTO Benutzer (Firma, Mitglied, Administrator) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails (shippingAddress, company, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something'); COMMIT;`, (fehler, Ergebnis) => { if (err) return res.status(422).json(err); return res.status(200).json(result); } );</pre> <p>显示的错误是:</p> <pre class="brush:php;toolbar:false;">{"code":"ER_PARSE_ERROR","errno":1064,"sqlMessage":"Sie haben einen Fehler in Ihrer SQL-Syntax ; Überprüfen Sie im Handbuch Ihrer MariaDB-Serverversion die richtige Syntax für die Verwendung in der Nähe von „INSERT INTO Addresses (address, postal_code, city, state, country) VALUES('Ve...' at line 1","sqlState": "42000","index":0,"sql":"BEGIN; , 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; INSERT INTO Companies (owner, org_nr, name) VALUES('someid', 133769420, 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_company_id; INSERT INTO Users (company). , Mitglied, Administrator) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails (shippingAddress, company, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something');" }</pre> <p>有人知道这可能是什么原因引起的吗?任何帮助将不胜感激 :)</p>
P粉549986089
P粉549986089

Antworte allen(1)
P粉037450467

我在这里找到了解决方案:https://stackoverflow.com/a/23267627/13214923 原来node-mysql默认不支持多个语句。

通过添加

{multipleStatements: true,}

到我的连接池配置中,它就像魔术般地工作了 :)

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!