Oznámení
Omlouváme se, provoz fóra byl ukončen
Chyba v příkazu: Update set Col = Col + 1
Upozornění: Tohle vlákno je hodně staré.
před 8 lety
- smi
- Člen | 76
Ahojka,
používám Dibi 1.5rc a při příkazu typu:
Update set Col = Col + 1
mi to hlásí:
Incorrect integer value: ‚Col‘ for column ‚Col‘ at row 1
To znamená, že to dibi neumí nebo to dělám blbě ?
před 8 lety
- Milo
- Nette Core | 1119
Jak vypadá celý SQL dotaz a na jaké DB? Dibi to „umí“, je to nástroj na poskládání dotazu. Spíš dáváš apostrofy tam kde nemají být.
dibi::query('UPDATE [tabulka] SET [Col] = [Col] + 1');
před 8 lety
- smi
- Člen | 76
No kód vypadá takhle.
Dibi je poslední tedy 1.5 rc
// Argumenty
$plus = 30*24*3600;
$prodlouzil = "Já";
$Klic = 1;
$this->table = "Uzivatele";
$date = "Platnost + $plus"; nebo $date = "`Platnost`";
$args = array(
'Platnost' => $date,
'Prodlouzil' => $prodlouzil,
);
// Sql query - Incorrect integer value: '`Platnost`' for column 'Platnost' at row 1 !!!
$que = dibi::update($this->table, $args)
// Neprodluzovat superuzivatele !
->where('Klic = %i AND Platnost != -1', $Klic)
// Rana jistota
->limit(1);
// Sql query - Incorrect integer value: '`Platnost`' for column 'Platnost' at row 1 !!!
Editoval smi (25. 5. 2011 19:47)
před 8 lety
- Milo
- Nette Core | 1119
Musíš specifikovat, jaký datový typ ukládáš do sloupce
Platnost
. Když to neuděláš, dibi typ detekuje a ve tvém
případě zvolí typ string, což je z bezpečnostního hlediska OK.
// Argumenty
$plus = 30 * 24 * 3600;
$prodlouzil = 'Já';
$Klic = 1;
$this->table = 'Uzivatele';
$args = array();
$args['Prodlouzil%s'] = $prodlouzil; // Hodnota je string
if (podminka)
{
// Hodnota je pole a to chci expandovat do SQL kodu
$args['Platnost%ex'] = array('[Platnost] + %i', $plus);
}
//else // Else muzes vynechat, stejne se sloupec neupdate
//{
// $args['Platnost%n'] = 'Platnost'; // Hodnota je nazev sloupce
//}
$que = dibi::update($this->table, $args)
->where('[Klic] = %i AND [Platnost] != -1', $Klic)
->limit(1);
Editoval Milo (25. 5. 2011 23:06)
před 8 lety
- smi
- Člen | 76
Díky za radu