Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [MySQL] alter che non funzia

    sto cercando di modificare la struttura di una tabella da PHP

    ecco il codice

    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    $link=mysql_connect ('myhost','myuser','mypass');

    mysql_select_db('mydatabase');
    $result mysql_query('ALTER TABLE prodotti ADD COLUMN banner BOOLEAN;');
    echo 
    "done!";
    ?>
    1. non aggiunge il campo... ho controllato (e non capisco perchè... mi sembra pulito)
    2. non restituisce alcun errore (e non scrive DONE!)

    eppure io ho messo l'error_reporting... perchè spesso non scrive alcun errore e non restituisce output???

    poi, perchè non funziona? può essere bloccata la tabella? eppure non dovrebbe... c'è un modo per capirlo?

    infine la sintassi utilizzata è molto sporca (sono un newbie!!!) oppure è abbastanza decente?
    consigli su come pulirla?

    grazie ancora (già oggi mi siete stati di grande aiuto :P)
    san imente saluta

    * http://simonecingano.it *

  2. #2
    BOOLEAN non e' un tipo di campo.

    Per la segnalazione di errore devi metterne la richiesta.
    codice:
    $result = mysql_query('ALTER TABLE prodotti ADD COLUMN banner TIPO(numero)') or die(mysql_error()) ;

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Il tipo BOOLEAN, sembrera' incredibile ma e' vero, non esiste in MySQL. Non capisco perche' non fallisca la query peraltro.

    Il resto della sintassi sembra ok.

  4. #4
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Aho Piero hai rotto

  5. #5
    Il tipo BOOLEAN, sembrera' incredibile ma e' vero, non esiste in MySQL.
    paro paro dal manuale aggiornato (preso sul sito di MYSQL)...

    [...]

    12.1 Column Type Overview
    12.1.1 Overview of Numeric Types

    [...]

    TINYINT[(M)] [UNSIGNED] [ZEROFILL]
    A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255.
    BIT
    BOOL
    BOOLEAN
    These are synonyms for TINYINT(1). The BOOLEAN synonym was added in MySQL 4.1.0. A value of zero is considered false. Non-zero values are considered true. In the future, full boolean type handling will be introduced in accordance with standard SQL.
    [...]


    mi sembra parli da solo o sbaglio

    cmq ho messo TINYINT(1) e ha funzionato

    forse non è aggiornato MySQL sul mio server
    san imente saluta

    * http://simonecingano.it *

  6. #6
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Qui in locale ho la 4.021 che e' la ultima versione stabile. MySQL 4.1 e' una release gamma e come tale non l'ho voluta mettere su, mentre MySQL 5 e' addirittura in Alpha.

    L'assenza di BOOLEAN e' una delle cose che storicamente sono state strane di MySQL, e non sapevo finalmente ci avessero messo una pezza, anche se a quanto leggo dal pezzo di manuale e' veramente un accrocchio mal fatto. Un'altra che non ho mai capito e' la questione del primo TIMESTAMP che si auto-aggiorna.. mah!

    Ogni DBMS ha comportamenti custom ma questi francamente sono sempre stati particolarmente strani

    Cmq niente di piu' facile che sul tuo hosting ci sia MySQL4.0x. Io non metterei a disposizione dei miei clienti un software catalogato come gamma release.

    Visto che comunque il supporto del tipo BOOLEAN e' fittizio, per ora prova a mettere un SET('TRUE', 'FALSE') come faccio io..

    E' uno schifo ma al passaggio a MySQL 5 con supporto full il comportamento rimarra' invariato, mente il tipo BOOLEAN attuale personalmente lo lascerei stare visto che c'e' gia' scritto che cambiera' in modo da essere finalmente SQL92 compliant (per Dio, bisognava arrivare alla 5.0 per avere i campi vero/falso!)

  7. #7
    oddio... in MDB tutto quello che faccio è esattamente questo
    evitare il tipo BOOLEAN e usare tipi numerici minimi.

    poichè la booleana in ambito ASP/MDB è un oggetto un po' fastidioso... o meglio funziona benissimo, ma bisogna metterci una piccola funzioncina che controlli sempre il tipo di dati e il passaggio da un sistema all'altro

    quindi in realtà dover utilizzare un tipo di dato numerico 0/1 non mi dispiace... anzi, non mi cambia nulla visto che dall'altra sponda lavoro così

    ...più mi addentro nel PHP più mi piace...

    [prego di non continuare il post sul confronto ASP/PHP o cose del genere... tanto andrebbe inutilmente avanti come spesso succede...
    la mia era solo una semplice constatazione]

    grazie ancora per le delucidazioni
    imparo...imparo...imparo...

    ciao ray
    san imente saluta

    * http://simonecingano.it *

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.