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

Développement SQL Server Discussion :

Erreur lors d'exécution d'une table sql


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 91
    Par défaut Erreur lors d'exécution d'une table sql
    Bonjour.

    J'ai cette table :
    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
    CREATE TABLE [dbo].[latest_info](
    	[id] [int] IDENTITY(1,1) NOT NULL,
    	[type] [varchar](20) NULL,
    	[number] [varchar](255) NULL,
    	[url] [varchar](255) NULL,
    	[title] [varchar](255) NULL,
    	[text] [text] NULL,
    	[author] [varchar](50) NULL,
    	[icon] [varchar](50) NULL,
    	[publish_date] [bigint] NULL,
    PRIMARY KEY CLUSTERED 
    (
    	[id] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
     
    ALTER TABLE [dbo].[latest_info] ADD  DEFAULT (datediff_big(millisecond,'1970-01-01 00:00:00',getutcdate())) FOR [publish_date]
    GO
    Lorsque j'essaye de prendre la valeur de la date en PHP, ça dit que c'est un "object" et pas un "string".

    Je ne me rappelle plus de l'astuce à ajouter à la DB qui résoud ce problème.

    Merci

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 750
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Une seule fois lors de la connexion
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE, false); // la solution
     
    // Ensuite, toutes vos requêtes fonctionnent automatiquement
    $stmt = $pdo->query("SELECT * FROM latest_info");
    $row = $stmt->fetch();
    echo $row['publish_date']; // String automatiquement
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 91
    Par défaut
    Merci.

    Ta solution est simple.

    Par contre je vois ça sur google

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function connect()
    {
     
        $c_host2                    = 'VMI48950\SQLEXPRESS';
        $config1['UID']             = 'sa';
        $config1['PWD']             = 'pass';
        $config1['Database']        = 'Db';
        $config1['CharacterSet']    = 'UTF-8';
        $config1['ReturnDatesAsStrings'] = true;
     
        $conn2 = sqlsrv_connect($c_host2, $config1);
        if(!$conn2) die('Error cnnetion DB.');
     
    }
    J'ai adapté, mais je pense que c'est faux

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 750
    Par défaut
    Oui c'est une autre solution (qui est incomplète, elle ne retourne rien).

    Si cette solution vous convient, utilisez-là ! Tant que ça fonctionne...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 91
    Par défaut
    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
     
     
    # Connection
    $server = 'server\instance,port';
    $cinfo = array(
        "ReturnDatesAsStrings"=>false,
        "Database"=>'database',
        "UID"=>"uid",
        "PWD"=>"pwd"
    );
    $conn = sqlsrv_connect($server, $cinfo);
    if( $conn === false )
    {
        echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);
        exit;
    }
    La ya pas d'erreur je pense.

    Je continue à coder ce n'est pas fini.

    Je reviens vers vous quand j'ai un problème.

    Merci

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 91
    Par défaut
    Rebonjour.
    Je crois que le UNIX TIMESTAMP est faux.

    Dans la table sa me génére ça par exemple:
    1762687062220

    Alors que la valeur doit être plus courte et ressembler a ça :
    1762698820

    Possible d'avoir de l'aide svp car je comprends pas là.


    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
    USE [Db_website]
     
    CREATE TABLE [dbo].[latest_info](
    	[id] [int] IDENTITY(1,1) NOT NULL,
    	[type] [varchar](20) NULL,
    	[number] [varchar](255) NULL,
    	[url] [varchar](255) NULL,
    	[title] [varchar](255) NULL,
    	[text] [text] NULL,
    	[author] [varchar](50) NULL,
    	[icon] [varchar](50) NULL,
    	[publish_date] [bigint] NULL,
    PRIMARY KEY CLUSTERED 
    (
    	[id] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
     
    ALTER TABLE [dbo].[latest_info] ADD  DEFAULT (datediff_big(millisecond,'1970-01-01 00:00:00',getutcdate())) FOR [publish_date]
    GO

Discussions similaires

  1. Erreur lors d'un update d'une table sql serveur en liaison ODBC avec SAS
    Par wizou44 dans le forum Administration et Installation
    Réponses: 5
    Dernier message: 25/05/2009, 10h44
  2. Réponses: 2
    Dernier message: 09/06/2008, 22h51
  3. Erreur lors la lecture d'une table PostgreSQL
    Par choko83 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 30/04/2008, 15h56
  4. Erreur lors d'insertion dans une table avec Indentity
    Par rad_hass dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/03/2008, 16h22
  5. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 18h16

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