Maison > base de données > tutoriel mysql > Fonctions liées au temps pour démarrer avec MySQL

Fonctions liées au temps pour démarrer avec MySQL

黄舟
Libérer: 2017-01-19 15:46:17
original
1219 Les gens l'ont consulté

Le protocole binaire vous permet d'envoyer et de recevoir des valeurs de date et d'heure (DATE, TIME, DATETIME et TIMESTAMP) en utilisant la structure MYSQL_TIME. Les membres de cette structure sont décrits dans la Section 25.2.5, « Types de données pour les instructions préparées par l'API C ».

Pour envoyer des valeurs de données temporaires, vous pouvez utiliser mysql_stmt_prepare() pour créer des instructions préparées. Ensuite, avant d'appeler mysql_stmt_execute() pour exécuter l'instruction, vous pouvez utiliser les étapes suivantes pour définir chaque paramètre temporaire :

Dans la structure MYSQL_BIND associée à la valeur des données, définissez le membre buffer_type sur le type correspondant, qui spécifie le type de valeur temporaire envoyée. Pour les valeurs DATE, TIME, DATETIME ou TIMESTAMP, définissez buffer_type sur MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME ou MYSQL_TYPE_TIMESTAMP respectivement.

Définissez le membre tampon de la structure MYSQL_BIND sur l'adresse de la structure MYSQL_TIME utilisée pour transmettre les valeurs temporaires.

Remplissez les membres de la structure MYSQL_TIME en fonction du type de support temporaire que vous comptez transmettre.

Utilisez mysql_stmt_bind_param() pour lier les données de paramètre à une instruction. Mysql_stmt_execute() peut alors être appelé.

Pour récupérer une valeur temporaire, suivez des étapes similaires, mais définissez le membre buffer_type sur le type de valeur que vous avez l'intention d'accepter, et définissez le membre buffer sur l'adresse de la structure MYSQL_TIME dans laquelle la valeur de retour doit être placé. Après avoir appelé mysql_stmt_execute() et avant d'obtenir les résultats, utilisez mysql_bind_results() pour lier le tampon à l'instruction.

Regardez le code spécifiquement :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dlfcn.h>
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <termios.h>
#include <mysql/mysql.h>
int main()
{
    int         ret = 0, status = 0;
    MYSQL       *mysql;
    MYSQL_RES   *result;
    mysql =mysql_init(NULL);
    mysql =mysql_real_connect(mysql, "localhost", "root", "123456", "mydb2", 0, NULL, CLIENT_MULTI_STATEMENTS );
    if (mysql == NULL)
    {
        ret = mysql_errno(mysql);
        printf("%s", mysql_error(mysql));
        printf("func mysql_real_connect() err :%d\n", ret);
        return ret;
    }
    else
    {
        printf(" ok......\n");
    }
    MYSQL_TIME  ts;
    MYSQL_BIND  bind[3];
    MYSQL_STMT  *stmt;
     //注意:
     // 创建的表语句
     // create table test_table (date_field date,  time_field time,  timestamp_field timestamp );
    char query[1024] = "INSERT INTO test_table(date_field, time_field, timestamp_field) VALUES(?,?,?)";
    stmt = mysql_stmt_init(mysql);
    if (!stmt)
    {
        fprintf(stderr, " mysql_stmt_init(), out of memory\n");
        exit(0);
    }
    if (mysql_stmt_prepare(stmt, query, strlen(query)))
    {
        fprintf(stderr, "\n mysql_stmt_prepare(), INSERT failed");
        fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
        exit(0);
    }
    /* set up input buffers for all 3 parameters */
    bind[0].buffer_type= MYSQL_TYPE_DATE;
    bind[0].buffer= (char *)&ts;
    bind[0].is_null= 0;
    bind[0].length= 0;
    //
    bind[1]= bind[2]= bind[0];
    //...
    mysql_stmt_bind_param(stmt, bind);
    /* supply the data to be sent in the ts structure */
    ts.year= 2002;
    ts.month= 02;
    ts.day= 03;
    ts.hour= 10;
    ts.minute= 45;
    ts.second= 20;
    mysql_stmt_execute(stmt);
    // Close the statement //
    if (mysql_stmt_close(stmt))
    {
      fprintf(stderr, " failed while closing the statement\n");
      fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
      exit(0);
    }
    mysql_close(mysql);
}
Copier après la connexion

Ce qui précède est le contenu des fonctions liées au temps pour démarrer avec MySQL. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois. (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal