Visualizzazione dei risultati da 1 a 10 su 10

Discussione: php mysql apache

  1. #1

    php mysql apache

    salve,
    ho installato tutti i programmi tipo esayphp xampp ed infine separatamente come indicato dalle guide.

    il computer interessato ha il SO windows xp.

    la problematica è la seguente:

    con nessuna installazione nonostante i programmmi funzionino correttamente riesco ad eseguire il comando insert da un form per l'inserimento in una tabella di mysql.
    altri comandi vanno alla perfezione esempio il select per richiamarvi i dati all'interno ma l'insert, anche se lo da come eseguito, di fatto nella tabella non inserisce nulla.

    la cosa strana è che usando lo stesso script su uno spazio tipo aruba o sul mio portatile che ha la stessa configurazione di programmi ma un sistema windows 7, lo stesso funziona perfettamente portando a termine l'inserimento.

    mi chiedo cosa possa avere questo pc??

    qualcuno sa darmi una piegazione, grazie.

  2. #2

    Re: php mysql apache

    Originariamente inviato da seawolf
    qualcuno sa darmi una piegazione, grazie.
    senza un minimo di script usato non c'e' santo da indovinare.

    dovresti prima di tutto verificare se la form che citi invia i dati e se li invia vedere cosa stampa la query di inserimento.

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

  3. #3
    prova a controllare se l'utente che usi per accedere al db ha i permessi per modificare o scrivere dati nelle tabelle

  4. #4
    <?php

    mysql_connect("localhost","root") or die ("collegamento al server fallito");
    mysql_select_db("registrazione") or die ("collegamento al dbase fallito");
    $cognome = strtoupper($_POST["cognome"]);
    $nome = strtoupper($_POST["nome"]);
    $citta = strtoupper($_POST["citta"]);
    $provincia = $_POST["prov"];
    $eta = $_POST["eta"];
    $nick = $_POST["nick"];
    $pass = $_POST["pass"];
    $mail = strtolower($_POST["mail"]);
    $tel = $_POST["tel"];
    $note = $_POST["testo"];

    $queryins = "INSERT INTO iscrizione VALUES ('','$cognome', '$nome', '$citta','$provincia','$eta','$nick','$pass','$mai l','$tel','$note')";
    $risultato = mysql_query($queryins);

    echo "
    ";
    $ultimo_id = mysql_insert_id();

    if(!isset($risultato)){
    echo "inserimento fallito";

    }else{



    come potete vedere uno script elementare,
    ripeto lo script funziona alla perfezione sugli altri computer si questo no nonostante quanto scritto al primo post

  5. #5
    ci sono parecchie imprecisioni in questo script.

    qualcuna random:

    isset non trova i valori 0, vuoti, pieni ma solo se e' settata la variabile.
    Quindi $risultato non sara' mai false.

    Non usi la password per la connessione al db.
    Non verifichi se $_POST e' valorizzato (correttamente).
    Usi le apici per definire NULL l'id autoincrement. Questo potrebbe essere un errore a seconda di come hai settato SQL-MODE di mysql

    metti la stampa degli errori della query e stampa la query per vedere come vengono risolte le variabili.

    Codice PHP:
    ....
    echo 
    $queryins;
    $risultato mysql_query($queryins) or die(mysql_error()); 

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

  6. #6
    Non verifichi se $_POST e' valorizzato (correttamente). Usi le apici per definire NULL l'id autoincrement. Questo potrebbe essere un errore a seconda di come hai settato SQL-MODE di mysql
    ciao allora cortesemente, è da poco che abbraccio il php,
    apici o virgolette ci sono differenze sostanziali ??

    valorizzare il $_post ??

    la password per ora nn la uso.

    ti faccio sapere per la prova da te consigliata, grazie.

  7. #7
    x piero.mac

    INSERT INTO iscrizione VALUES ('','PROTOTIPO', 'CAINO','ROMA','AG','1940','caino','sensei','caino @pizza.it',',')Column count doesn't match value count at row 1
    questa è la risposta al tentativo di inserimento

  8. #8
    Originariamente inviato da seawolf
    ......
    questa è la risposta al tentativo di inserimento
    Significa che il numero delle colonne della tabella e' diverso dal numero dei campi che vuoi inserire. Noto una anomalia:

    nella query si contano 11 campi, nell'errore solo 10

    $queryins = "INSERT INTO iscrizione VALUES ('','$cognome', '$nome', '$citta','$provincia','$eta','$nick','$pass','$mai l','$tel','$note')";

    INSERT INTO iscrizione VALUES ('','PROTOTIPO', 'CAINO','ROMA','AG','1940','caino','sensei','caino @pizza.it',',')Column count doesn't match value count at row 1

    potrebbe essere che in uno degli ultimi campi tenti di inserire un apostrofo che viene interpretato male. Stampa la query.

    Ipotesi: nella tua configurazione hai magic_quotes_gpc in off. Negli altri pc sono in ON. Se cosi' fosse leggiti ed applica la pillola di Luca200 su come trattare questi inserimenti.

    http://forum.html.it/forum/showthrea...ostid=10166292

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

  9. #9
    grazie per ora marco per le indicazioni del caso, cerco di risolvere l'errore se hai altre dritte o guide non esimerti.

    ho corretto mi ero dimenticato una aposrtofo ora :


    INSERT INTO iscrizione VALUES ('','CALCARE ','ALDO','ASCOLI','AG','1940','admin','sensei','ca ino@pizza.it','','ciao')Incorrect integer value: '' for column 'ID' at row 1
    allora:

    la soluzione è che nel campo telefono era settato come INT, percui rimanendo vuoto dava l'errore settandolo come varchart tutto è ok.

    mi domando c'è un modo per trattarlo come INT, nonostante la variabile rimanga vuota ?

  10. #10
    Originariamente inviato da seawolf

    la soluzione è che nel campo telefono era settato come INT, percui rimanendo vuoto dava l'errore settandolo come varchart tutto è ok.

    mi domando c'è un modo per trattarlo come INT, nonostante la variabile rimanga vuota ?
    per averlo come INT la variabile vuota dovrebbe essere 0 (zero) senza apici.

    Questo fatto dipende da come e' impostato SQL-MODE.

    Ma un numero di telefono va bene impostato come varchar. La lunghezza complessiva puo' variare fino a 14 o piu' cifre ed avere degli 0 o + iniziali oppure un divisore tra prefisso e numero.

    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.