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

    problemino sintattico sql

    function CreaFattura()
    {$numfatt = date('dmy');
    $link = mysql_connect('localhost', 'root', '*******');
    if (!$link) {
    die('Could not connect: ' . mysql_error());
    }

    if(get_magic_quotes_gpc())
    {
    $numfatt = stripslashes($numfatt);

    }

    $numfatt = mysql_real_escape_string($numfatt);

    $sql = "CREATE DATABASE '$numfatt'";


    if (mysql_query($sql, $link)) {
    echo "Database my_db created successfully\n";
    } else {
    echo 'Error creating database: ' . mysql_error() . "\n";
    }





    }
    CreaFattura();


    non capisco dove sbaglio, o meglio non so il motivo...
    $sql = "CREATE DATABASE '$numfatt'";

    se faccio

    $sql = 'CREATE DATABASE prova'; non ha problemi....

    $sql = 'CREATE DATABASE $numfatt'; ugaule la sintassi va bene ma non riconosce la variabile

    $sql = "CREATE DATABASE "$numfatt""; non va....

    $sql = 'CREATE DATABASE '$numfatt''; non va....

    $sql = "CREATE DATABASE '$numfatt'"; teoricamente dovrebbe essere quello giusto che ho provato fin
    dall'inizio ma nisba....

    adesso mi sorge il pensiero? non so capace ho il server da i numeri? :master:

    grazie in anticipo per l'aiuto....

  2. #2
    il limite e' quello numerico.... in pratica trovi gli stessi limiti previsti per il nome delle variabili.

    Non deve iniziare con un numero.

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

  3. #3
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92
    Prova con:
    $sql = "CREATE DATABASE ".$numfatt."";

  4. #4
    Originariamente inviato da piero.mac
    il limite e' quello numerico.... in pratica trovi gli stessi limiti previsti per il nome delle variabili.

    Non deve iniziare con un numero.
    beh! no. Ho visto che si puo' anche con un numerico.

    semplicemente sbagli con gli apici.

    $sql = "CREATE DATABASE '$numfatt'";
    --- qui metti le apici al nome database, non ci vogliono

    $sql = 'CREATE DATABASE prova'; non ha problemi....
    --- infatti

    $sql = 'CREATE DATABASE $numfatt'; ugaule la sintassi va bene ma non riconosce la variabile
    ---- perche' usi l'apice singolo e non viene tradotta la variabile

    $sql = "CREATE DATABASE "$numfatt""; non va....
    ---- men che meno

    $sql = 'CREATE DATABASE '$numfatt''; non va....
    ---- racchiudi con apici singole ed apici sul nome

    $sql = "CREATE DATABASE '$numfatt'"; teoricamente dovrebbe essere quello giusto
    --- apici sul nome


    le forme corrette sono:

    $sql = "CREATE DATABASE $numfatt ";
    $sql = "CREATE DATABASE `$numfatt` ";
    $sql = "CREATE DATABASE " .$numfatt . ";
    $sql = "CREATE DATABASE {$numfatt} ";

    ma creare uno o piu' database con la data odierna mi lascia perplesso..... e perche' ci metti stripslashes() e mysql_real_escape() se lo crei tu con date() e per di piu' nella funzione stessa? e poi una funzione senza un return ....

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

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.