IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur Fatal error: Uncaught PDOException: SQLSTATE[HY000]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut Erreur Fatal error: Uncaught PDOException: SQLSTATE[HY000]
    Bonjour,

    Je prépare un script pour faire des "slug" de nom/prénoms, mais dès le début cela ne marche pas, j'ai une erreur "General error: mode must be an integer" , alors que j'ai bien un entier (j'ai même un entier par défault '1000' , auriez-vous une idée s'il vous plait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: mode must be an integer in C:\UwAmp\www\slug.php on line 57
    ( ! ) PDOException: SQLSTATE[HY000]: General error: mode must be an integer in C:\UwAmp\www\slug.php on line 57
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0023	365656	{main}( )	...\slug.php:0
    2	0.0132	425160	checkIfPlayerSlugExists( )	...\slug.php:68
    3	0.0176	438544	query ( )	...\slug.php:57
    Nom : error_slug.png
Affichages : 730
Taille : 20,5 Ko


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function cnx_pdo(){
    	global $debug,$var_site,$log_error;
     
    	$db   = "sportmonks";
    	$host="localhost";
    	$user="root";
    	$pass="root";	
    	$charset =  'utf8mb4';
     
     
    	//$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    	$dsn = "mysql:host=$host;charset=$charset";
    	$options = [
    		PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    		PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    		PDO::ATTR_EMULATE_PREPARES   => false,
    	];
    	try {
    		 $pdo = new PDO($dsn, $user, $pass, $options);
    	} catch (\PDOException $e) {
    		echo $e->getMessage();
    		 error_log("Erreur cnx bdd");
    		 throw new \PDOException($e->getMessage(), (int)$e->getCode());
    	}
    	return($pdo);
    }
     
    function checkIfPlayerSlugExists($slug, $id)
    {
    	$pdo_c = cnx_pdo();
            $id=1000;
    	return $pdo_c->query('SELECT id FROM sportmonks.players_tmp2 WHERE slug = :slug AND id != :id LIMIT 1', ['slug' => $slug, 'id' => $id])->fetchAll();
    }
     
    $pdo = cnx_pdo();
    $query = $pdo->prepare("SELECT * FROM sportmonks.players_tmp2 ORDER BY display_name ASC");
    $query->execute();
    $players = $query->fetchAll();
     
    foreach($players as $player){
    		$slug=$player["display_name"];
    		$doSlugExist = checkIfPlayerSlugExists($slug, $player['id']);
    		if (count($doSlugExist) > 0 ) echo "fff";
    }
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE `players_tmp2` (
      `id` bigint(20) NOT NULL,
      `display_name` varchar(255) DEFAULT NULL,
      `slug` varchar(255) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
     
    --
    -- Contenu de la table `players_tmp2`
    --
     
    INSERT INTO `players_tmp2` (`id`, `display_name`, `slug`) VALUES
    (47, 'Fábio Aurélio', NULL);

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    c'est une requête préparée donc vous devez commencer par utiliser "prepare" à la place de "query".

  3. #3
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/02/2020, 20h29
  2. Fatal error: Uncaught PDOException
    Par tissebaos dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/06/2018, 12h18
  3. [MySQL] Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292
    Par jmtrivia dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/06/2017, 14h59
  4. [MySQL] Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000
    Par okoweb dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/12/2011, 08h32
  5. [MySQL] Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
    Par -Fly- dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/04/2011, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo