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

    [php + mysql] Notice: Only variable references ...

    Ciao a tutti.
    Ho un problemone con delle query.

    Antefatto: da qualche giorno ho migrato i siti in un nuovo webserver con php5 e mysql5

    Ora, per alcune query (sviluppate dal mio programmatore predecessore con DREAMWEAVER -!!giuro!!-)
    ottengo i seguenti errori:

    Notice: Only variable references should be returned by reference in /var/www/vhosts/dominio.it/httpdocs/adodb/adodb-connection.inc.php on line 391

    Notice: Only variable references should be returned by reference in /var/www/vhosts/dominio.it/httpdocs/adodb/drivers/adodb-mysql.inc.php on line 269

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1



    Quale può essere il problema?
    Preciso che se cambio la connessione al db e lo faccio puntare al vecchio server (MySQL 4.0.15-standard) tutto funziona perfettamente (sono quindi esclusi problemi con php.ini).

    Che sia qualche variabile o parametro del server nuovo?
    Ho configurato un nuovo db con mysql 4 sul nuovo server e la query non funziona...
    Non si tratta quindi nemmeno di un problema con la versione di mysql..

    Ho provato a fare qualche ricerca sul web ma non ho trovato nulla di risolutivo..

    Qualcuno può darmi una mano?


    Riporto anche la query che genera l'errore:

    //Connection statement
    require_once('Connections/connection.php');
    $query_dati = "SELECT * FROM nome_tabella WHERE colonna LIKE 'pippo'";
    $dati = $connection->SelectLimit($query_dati) or die($connection->ErrorMsg());



    Grazie mille!
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta"
    Isaac Asimov

  2. #2
    ; - allow_call_time_pass_reference = Off [Code cleanliness]
    ; It's not possible to decide to force a variable to be passed by reference
    ; when calling a function. The PHP 4 style to do this is by making the
    ; function require the relevant argument by reference.
    credo che sia per questo. si trova nel php.ini

    un'occhiata al manuale:

    http://www.php.net/manual/it/language.functions.php
    http://www.php.net/manual/it/language.references.php

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

  3. #3
    Non credo sia una problematica relativa al php.ini, infatti se imposto un altro db mysql presso il vecchio server la query funziona.

    Infatti se fosse un problema di php la query non funzionarebbe in nessun caso (con nessun db), giusto?

    Può essere che ci sia qualche variabile da cambiare nel nuovo server mysql?
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta"
    Isaac Asimov

  4. #4
    Originariamente inviato da SimonLeWeb
    Non credo sia una problematica relativa al php.ini, infatti se imposto un altro db mysql presso il vecchio server la query funziona.

    Infatti se fosse un problema di php la query non funzionarebbe in nessun caso (con nessun db), giusto?

    Può essere che ci sia qualche variabile da cambiare nel nuovo server mysql?
    non ho detto che e' colpa del php.ini, ma che quello che ti succede possa essere relativo a quella variabile che si trova nel php.ini

    stampa la query e vedi come viene risolta.

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

  5. #5
    Ho controllato i 2 file php.ini (vecchio server e nuovo server).. Sono identici nei punti che mi hai indicato..

    L'errore che mi blocca è:

    "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1"

    E temo che il problema sia la funzione selectlimit:
    $query_dati = "SELECT * FROM nome_tabella WHERE colonna LIKE 'pippo'";
    $dati = $connection->SelectLimit ($query_dati) or die($connection->ErrorMsg());

    Solo che non capisco come mai funzioni perfettamente sul vecchio server mysql 4 e non funzioni sul nuovo server, nè con mysql 4 nè con il 5..

    Ma dimmi tu.. Devo passare il week end a lavorare perchè il programmatore prima di me faceva le query con Dreamweaver (o meglio, le faceva dreamweaver)..
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta"
    Isaac Asimov

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    non c'entra niente DW... quella riga non la genera lui...

  7. #7
    Invece il codice che ho postato è generato al 100% proprio da Dreamweaver.
    Come le connessioni al db, i clicli while per le aree dinamiche etc etc
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta"
    Isaac Asimov

  8. #8
    ma l'hai stampata la query? Hai letto i link che ti ho postato relativi alle funzioni?

    il problema potrebbe essere nelle funzioni create con Dreamweaver
    Notice: Only variable references should be returned by reference in /var/www/vhosts/dominio.it/httpdocs/adodb/adodb-connection.inc.php on line 391

    Notice: Only variable references should be returned by reference in /var/www/vhosts/dominio.it/httpdocs/adodb/drivers/adodb-mysql.inc.php on line 269
    Solo le variabili passate con riferimento dovrebbero essere rese con riferimento. (php 5)

    http://www.php.net/manual/it/languag...ces.return.php

    non importa chi ha scritto la funzione.... importa cosa c'e' scritto nella funzione.

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

  9. #9
    Si, ho letto sia i tutorial che provato a stampare la query, ma sinceramente non ne sono uscito.
    Purtroppo dei link che hai postato ci ho capito ben poco.

    Non capisco il motivo per il quale una funzione su un server con php 5, funziona con un db e con un altro no. Se il problema fossero come dici tu le variabili passate coi riferimenti (che per me è come dire PUFFARE LE PUFFBACCHE), non dovrebbe porsi comunque il problema (ed invece con un db mysql4 funziona..)?

    Rinuncio a capire, inizierò a riscrivere le query una per una in maniera decente.

    Ciao e grazie mille comunque!
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta"
    Isaac Asimov

  10. #10
    Problema risolto.
    La cartellina adodb creata in totale autonomia da Dreamweaver aveva dei bug per certe versioni di mysql.

    Ho caricato l'ultima versione da <http://adodb.sourceforge.net/> e l'ho sostituita e la query funziona magnificamente.

    Un consiglio a tutti i programmatori: mai usare Dreamweaver (Applicazione->Comportamentiu server-> Recordset) per fare le query, si sta molto meno ad imparare il php e l'sql che utilizzare quell'arcaico e vergognoso sistema.
    Per fortuna credo non sia nemmeno più supportato nelle ultime versioni di Dreamweaver.

    Ciauz
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta"
    Isaac Asimov

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.