.Neø Posted December 16, 2018 Posted December 16, 2018 Zitat [2018-12-16T20:52:23.872] [ERROR] default - DELETE FROM weapon_shops WHERE ID=? (node:7184) UnhandledPromiseRejectionWarning: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1 at Query.Sequence._packetToError (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14) at Query.ErrorPacket (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\protocol\sequences\Query.js:77:18) at Protocol._parsePacket (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\protocol\Protocol.js:278:23) at Parser.write (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\protocol\Parser.js:76:12) at Protocol.write (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\protocol\Protocol.js:38:16) at Socket.<anonymous> (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\Connection.js:91:28) at Socket.<anonymous> (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\Connection.js:502:10) at Socket.emit (events.js:182:13) at addChunk (_stream_readable.js:283:12) at readableAddChunk (_stream_readable.js:264:11) -------------------- at Pool.query (C:\Users\Administrator\Desktop\server-files\node_modules\mysql\lib\Pool.js:199:23) at Promise (C:\Users\Administrator\Desktop\server-files\packages\RP\index.js:1:1304) at new Promise (<anonymous>) at Object.dbquery (C:\Users\Administrator\Desktop\server-files\packages\RP\index.js:1:1283) at Object.query (C:\Users\Administrator\Desktop\server-files\packages\RP\index.js:1:1425) at Promise (C:\Users\Administrator\Desktop\server-files\packages\RP\index.js:1:100357) at new Promise (<anonymous>) at C:\Users\Administrator\Desktop\server-files\packages\RP\index.js:1:100335 at Object.<anonymous> (C:\Users\Administrator\Desktop\server-files\packages\RP\index.js:1:100697) at n (C:\Users\Administrator\Desktop\server-files\packages\RP\index.js:1:172) (node:7184) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) [2018-12-16T20:52:23.878] [WARN] default - 'SELECT * FROM weapon_shops' ends with: 0.991s EMAIL SERVER READY! const business = require('./sBusiness'); const misc = require('../sMisc'); const i18n = require('../sI18n'); let weaponShops = {}; function createWeaponShopEntities(id, position) { let colShape = mp.colshapes.newSphere(position.x, position.y, position.z, 1.0); colShape.weaponShopID = id; weaponShops[id] = { colShape: colShape, marker: mp.markers.new(1, new mp.Vector3(position.x, position.y, position.z - 2.25), 2.0, { color: [224, 50, 50, 200] }), label: mp.labels.new(`Waffen Shop (${id})`, position, { los: true, font: 4, drawDistance: 20.0, color: [255, 255, 255, 255] }), blip: mp.blips.new(110, position, { name: "Waffen Shop", scale: 1.0, color: 0, shortRange: true }) }; } function deleteWeaponShopEntities(id) { if (weaponShops[id]) { if (weaponShops[id].colShape) weaponShops[id].colShape.destroy(); if (weaponShops[id].marker) weaponShops[id].marker.destroy(); if (weaponShops[id].label) weaponShops[id].label.destroy(); if (weaponShops[id].blip) weaponShops[id].blip.destroy(); } } async function loadWeaponShops() { const d = await misc.query("SELECT * FROM weapon_shops", (error, rows) => { if (e) { console.log(`Weapon shop loading failed: ${e.message}`); } else { rows.forEach((row) => createWeaponShopEntities(row.ID, new mp.Vector3(row.ShopX, row.ShopY, row.ShopZ))); console.log(`Loaded ${rows.length} weapon shop(s).`); } }); }; loadWeaponShops(); async function createWeaponShop(position) { return new Promise((resolve, reject) => { const d = misc.query("INSERT INTO weapon_shops SET ShopX=?, ShopY=?, ShopZ=?", [position.x, position.y, position.z], (error, result) => { if(e) { console.log(`Weapon Shop adding failed: ${e.message}`); reject(error); } else { createWeaponShopEntities(result.insertId, position); resolve(result.insertId); } }); }); }; createWeaponShop(); async function deleteWeaponShop(id) { return new Promise((resolve, reject) => { const d = misc.query("DELETE FROM weapon_shops WHERE ID=?", [id], (error, result) => { if(e) { console.log(`Weapon Shop removing failed: ${e.message}`); reject(error); } else { if(result.affectedRows > 0) { deleteWeaponShopEntities(id); delete weaponShops[id]; } resolve(result.affectedRows); } }); }); }; deleteWeaponShop(); Irgend wie fehlt da ein Catch oder wie darf ich den Fehler verstehen?
T0xicPo1nter Posted June 14, 2019 Posted June 14, 2019 Du hast nen MySQL Syntax Error: DELETE FROM weapon_shops WHERE ID=? Benutz lieber die ' ' bei den Variablen und schreib des dann so: DELETE FROM weapon_shops WHERE ID='?'
LeonMrBonnie Posted July 26, 2019 Posted July 26, 2019 Am 14.6.2019 um 09:08 schrieb T0xicPo1nter: Du hast nen MySQL Syntax Error: DELETE FROM weapon_shops WHERE ID=? Benutz lieber die ' ' bei den Variablen und schreib des dann so: DELETE FROM weapon_shops WHERE ID='?' Das stimmt nicht. Da er den ? Placeholder verwendet, kann man die Apostrophe weglassen, die werden automatisch dort eingesetzt. Es scheint so als würde der Placeholder garnicht erst ersetzt werden, versuch dir mal zu printen was in der Variable id steht.
T0xicPo1nter Posted August 3, 2019 Posted August 3, 2019 Am 26.7.2019 um 22:40 schrieb LeonMrBonnie: Das stimmt nicht. Da er den ? Placeholder verwendet, kann man die Apostrophe weglassen, die werden automatisch dort eingesetzt. Es scheint so als würde der Placeholder garnicht erst ersetzt werden, versuch dir mal zu printen was in der Variable id steht. Es is bei MySQL immer so wenn ein error bei mir is. Dann muss ich nur die ' Dinger hin machen und bam der Fehler is weg. Des is Basic MySQL Syntax
LeonMrBonnie Posted August 4, 2019 Posted August 4, 2019 vor 14 Stunden schrieb T0xicPo1nter: Es is bei MySQL immer so wenn ein error bei mir is. Dann muss ich nur die ' Dinger hin machen und bam der Fehler is weg. Des is Basic MySQL Syntax https://github.com/mysqljs/mysql#escaping-query-values Les dir das mal durch. Dort siehst du das dort steht "Strings are safely escaped", und damit ist auch gemeint, dass die Apostrophe eingesetzt werden. Bitte verbreite hier kein Halbwissen, du redest hier nämlich einfach nur Schwachsinn, ohne dich zu informieren.
T0xicPo1nter Posted August 10, 2019 Posted August 10, 2019 (edited) Am 4.8.2019 um 12:14 schrieb LeonMrBonnie: https://github.com/mysqljs/mysql#escaping-query-values Les dir das mal durch. Dort siehst du das dort steht "Strings are safely escaped", und damit ist auch gemeint, dass die Apostrophe eingesetzt werden. Bitte verbreite hier kein Halbwissen, du redest hier nämlich einfach nur Schwachsinn, ohne dich zu informieren. Auch in C#, sowie in anderen Sprachen muss man die Apostrophen einsetzen. Egal ob er den Placeholder benutzt. Sicher ist sicher Edited August 10, 2019 by T0xicPo1nter
T0xicPo1nter Posted August 10, 2019 Posted August 10, 2019 Und warum die Placeholder benutzen wenn man einfach das machen kann: misc.query(`INSERT INTO weapon_shops SET ShopX=${pos.x}, ShopY=${pos.y}, ShopZ=${pos.z}`, ...
Recommended Posts