Bonjour,
Je rencontre un soucis lorsque je me rends dans l’onglet Analyse/Equipements.
Au lieu d’avoir la liste de mes EQ j’ai une erreur SQL.
D’autres ont ce problème ?
Core et plugin à jour.
Bonjour,
Je rencontre un soucis lorsque je me rends dans l’onglet Analyse/Equipements.
Au lieu d’avoir la liste de mes EQ j’ai une erreur SQL.
D’autres ont ce problème ?
Core et plugin à jour.
je n’ai pas le problème mais je n’ai pas grand chose dans ma version jeedom beta
Merci pour ta réponse.
@team Jeedom si c’est lié à mon Jeedom pouvez m’aider à résoudre le problème ?
Merci d’avance
Je viens de passer en beta et problème identique
Idem toutes les nuits à 00:00
[MySQL] Error code : 42000 (1064). You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 3 : SELECT `id`, `logicalId`, `generic_type`, `eqType`, `name`, `order`, `type`, `subType`, `eqLogic_id`, `isHistorized`, `unite`, `configuration`, `template`, `display`, `html`, `value`, `isVisible`, `alert` FROM cmd WHERE id IN (1206,)
Pour info, puisque c’est la commande 1206 qui dé…e j’ai fais un scénario bloc code avec çà:
//list eqlogics:
$scenario->setLog('_________eqlogics:');
$eqlogics = eqLogic::all();
foreach($eqlogics as $eq) {
$scenario->setLog('id: '.$eq->getId().' name: '.$eq->getName());
}
//list cmds:
$scenario->setLog('_________cmds:');
$cmds = cmd::all();
foreach($cmds as $cmd) {
$scenario->setLog('id: '.$cmd->getId().' name: '.$cmd->getName());
}
Il me trouve bien la cmd 1206, et elle est bien là. Je pensais à une cmd orpheline mais non.
Bonjour,
Il y a au moins une erreur de syntaxe ici
WHERE id IN (1206,)
Il ne doit pas y avoir de virgule à la fin de la liste
Je suis bien d’accord mais quel fichier du core faudrai il corriger ?
Bonjour,
Le soucis est corrigé en alpha, ca montera prochainement en stable.
Super !
çà passe par la beta avant ou il faut faire la modif nous même ?
Je viens de pousser en beta
Super merci
Regarde ce PR aussi, c’est rien juste un text
J’ai toujours une erreur dans analyser/equipements
[MySQL] Error code : 42000 (1064). You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 3 : SELECT `id`, `logicalId`, `generic_type`, `eqType`, `name`, `order`, `type`, `subType`, `eqLogic_id`, `isHistorized`, `unite`, `configuration`, `template`, `display`, `html`, `value`, `isVisible`, `alert` FROM cmd WHERE id IN ()
Comme çà, çà marche:
public static function byIds($_ids) {
if (!is_array($_ids) || count($_ids) == 0) {
return;
}
$in = trim(implode(',', $_ids), ',');
$in = explode(',', $in)[0];
if (is_numeric($in))
{
$sql = 'SELECT ' . DB::buildField(__CLASS__) . '
FROM cmd
WHERE id IN (' . $in . ')';
return self::cast(DB::Prepare($sql, array(), DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__));
}
}
Sans le $in = explode(’,’, $in)[0]; j’avais quelques retours du type 1206,40
Je te laisse jeter un oeil avant de faire un PR
Oui mais ça fait plus ce que je veux la le $in est pas forcément un numérique mais une suite de numérique séparé par des ,
En faite la ce que je veux c’est récupérer plusieurs commandes en une requête la avec ta modification je n’en récupére que une.
Ok je vais regarder, j’avais peu etre seulement des in vide, car en effet j’ai vue passer des suites
Ok çà marche, on garde les suite et on check si y’a qql chose
public static function byIds($_ids) {
if (!is_array($_ids) || count($_ids) == 0) {
return;
}
$in = trim(implode(',', $_ids), ',');
if (!empty($in))
{
$sql = 'SELECT ' . DB::buildField(__CLASS__) . '
FROM cmd
WHERE id IN (' . $in . ')';
return self::cast(DB::Prepare($sql, array(), DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__));
}
}
si çà te va je te fais un pr
Oui là c’est bon pour moi