Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #22082 > unrolled thread

Utilizzo di variabili in una query Mysql tramite PDO

Started bysap <sap@nospam.no>
First post2018-05-25 15:59 +0200
Last post2018-05-25 20:05 +0200
Articles 4 — 3 participants

Back to article view | Back to it.comp.www.php


Contents

  Utilizzo di variabili in una query Mysql tramite PDO sap <sap@nospam.no> - 2018-05-25 15:59 +0200
    Re: Utilizzo di variabili in una query Mysql tramite PDO fmigliori <fmigliori@gmail.com> - 2018-05-25 07:32 -0700
      Re: Utilizzo di variabili in una query Mysql tramite PDO sap <sap@nospam.no> - 2018-05-25 16:41 +0200
    Re: Utilizzo di variabili in una query Mysql tramite PDO Leonardo Serni <lserni@gmail.com> - 2018-05-25 20:05 +0200

#22082 — Utilizzo di variabili in una query Mysql tramite PDO

Fromsap <sap@nospam.no>
Date2018-05-25 15:59 +0200
SubjectUtilizzo di variabili in una query Mysql tramite PDO
Message-ID<pe94rl$8ig$1@gioia.aioe.org>
Ciao a tutti,
non riesco a capire cosa sto sbagliando facendo quanto segue:

$query = "SET @tables = NULL;
             SET @schema = 'db_pippo';
             SET @pattern = '002_%';
             ";

$sth = $this->pdo->prepare($query);
$sth->execute();

Praticamente non arrivo neanche all'exevute ma ricevo questo errore:

"Fatal error: Uncaught exception 'PDOException' with message 
'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an 
error in your SQL syntax; check the manual that corresponds to your 
MariaDB server version for the right syntax to use near 'SET @schema = 
'db_pippo'; SET @pattern = '002_%'' at line 2' ..."




Dove $this->pdo è una istanza di PDO valida utilizzata senza problemi in 
altre parti del codice e definita come segue:

$opt = array(
                 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                 PDO::ATTR_EMULATE_PREPARES => FALSE,
             );
             $dsn = 'mysql:host=' . HOST . ';dbname=' . DATABASE . 
';charset=' . CHARSET;
             $instance = new PDO($dsn, USER, PASSWORD, $opt);


Avete idea di cosa stia sbagliando?
Grazie in anticipo

[toc] | [next] | [standalone]


#22083

Fromfmigliori <fmigliori@gmail.com>
Date2018-05-25 07:32 -0700
Message-ID<a2903094-0dac-4a69-8369-67f215860e75@googlegroups.com>
In reply to#22082
Usa nomi di variabili che non coincidano con parole chiave.

Per fare una prova:

$query = "SET @a = NULL; 
             SET @b = 'db_pippo'; 
             SET @c = '002_%'; 
             "; 

[toc] | [prev] | [next] | [standalone]


#22084

Fromsap <sap@nospam.no>
Date2018-05-25 16:41 +0200
Message-ID<pe97bj$dfs$1@gioia.aioe.org>
In reply to#22083
Grazie per la risposta ma non è quello,
praticamente ho dovuto cambiare il valore di un attributo

$this->pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

che inizialmente avevo settato in false.

Il 25/05/2018 16:32, fmigliori ha scritto:
> $query = "SET @a = NULL;
>               SET @b = 'db_pippo';
>               SET @c = '002_%';
>               ";

[toc] | [prev] | [next] | [standalone]


#22087

FromLeonardo Serni <lserni@gmail.com>
Date2018-05-25 20:05 +0200
Message-ID<f1kggdl1rlvvm1ida1rb130tjoqcadrdgp@L.Serni>
In reply to#22082
On Fri, 25 May 2018 15:59:20 +0200, sap <sap@nospam.no> wrote:

>non riesco a capire cosa sto sbagliando facendo quanto segue:
>
>$query = "SET @tables = NULL;
>             SET @schema = 'db_pippo';
>             SET @pattern = '002_%';
>             ";

Ce l'hai il supporto per le query multiple? Che non è una grande idea IMHO,
perché l'ottimizzazione è pochissima, e Bobby Tables è in agguato.

Leonardo
-- 

"You all presumably know why" :-) :-(

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web