Rumah  >  Soal Jawab  >  teks badan

NextJS Mysql berjalan dengan baik melalui phpmyadmin tetapi mempunyai masalah bertanya melalui api

<p>Seperti tajuknya, kod SQL saya berfungsi dalam phpmyadmin tetapi tidak apabila meminta daripada API. API saya menggunakan pakej mysql: </p> <pre class="brush:php;toolbar:false;">npm i mysql</pre> <p>Kod SQL:</p> <pre class="brush:php;toolbar:false;">BERMULA; MASUKKAN KE DALAM Alamat (alamat, pos_kod, bandar, negeri, negara) VALUES('Sesuatu', 69420, 'Sesuatu', 'Sesuatu', 'Sesuatu'); PILIH LAST_INSERT_ID() KE DALAM @mysql_address_id; MASUKKAN KE DALAM Syarikat (pemilik, org_nr, nama) VALUES('someid', 133769420, 'Sesuatu'); PILIH LAST_INSERT_ID() KE DALAM @mysql_company_id; MASUKKAN KE DALAM Pengguna (syarikat, ahli, pentadbir) VALUES(@mysql_company_id, 'someid', 1); INSERT IN TO CompanyDetails (shippingAddress, company, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Sesuatu', 'Sesuatu'); KOMIT;</pra> <p>Ini adalah perkara biasa dalam phpmyadmin.</p> <p>我使用以下方式调用函数:</p> <pre class="brush:php;toolbar:false;">db.query( `MULAKAN; INSERT INTO Addresses (alamat, pos_kod, bandar, negeri, negara) NILAI('Sesuatu', 69420, 'Sesuatu', 'Sesuatu', 'Sesuatu'); PILIH LAST_INSERT_ID() KE DALAM @mysql_address_id; INSERT INTO Companies (owner, org_nr, name) VALUES('Something', 133769420, 'Something'); PILIH LAST_INSERT_ID() KE DALAM @mysql_company_id; MASUKKAN KE DALAM Pengguna (syarikat, ahli, pentadbir) NILAI(@mysql_company_id, 'someid', 1); INSERT IN TO CompanyDetails (shippingAddress, company, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something'); KOMIT;`, (err, keputusan) => { if (err) return res.status(422).json(err); return res.status(200).json(result); } );</pra> <p>显示的错误是:</p> <pre class="brush:php;toolbar:false;">{"code":"ER_PARSE_ERROR","errno":1064,"sqlMessage":"Anda mempunyai ralat dalam sintaks SQL anda ; semak manual yang sepadan dengan versi pelayan MariaDB anda untuk sintaks yang betul untuk digunakan berhampiran 'INSERT INTO Addresses (alamat, pos_kod, bandar, negeri, negara) VALUES('Ve...' di baris 1","sqlState": "42000","indeks":0,"sql":"MULAKAN MASUKKAN KE DALAM Alamat (alamat, pos_kod, bandar, negeri, negara) NILAI('Sesuatu', 69420, 'Sesuatu', 'Sesuatu' , 'Sesuatu'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; , ahli, pentadbir) NILAI(@mysql_company_id, 'someid', 1); }</pre> <p>有人知道这可能是什么原因引起的吗?任何帮助将不胜感激 :)</p>
P粉549986089P粉549986089420 hari yang lalu391

membalas semua(1)saya akan balas

  • P粉037450467

    P粉0374504672023-08-27 10:14:45

    Saya menemui penyelesaiannya di sini: https://stackoverflow.com/a/23267627/13214923 Ternyata node-mysql tidak menyokong berbilang kenyataan secara lalai.

    Dengan menambah

    {multipleStatements: true,}

    ke dalam konfigurasi kolam sambungan saya dan ia berfungsi seperti sihir :)

    balas
    0
  • Batalbalas