Mysql(server)

Mysql 5.0以上 数据库接口。 全部展开

连接展开

  • + mysql = _mysql('ip或域名', username, password, database, port, timeoutSeconds)

    连接postgresql数据库。
    username为用户名,password为密码,database为数据库名,port为端口。
    timeoutSeconds为等待连接和所有数据库操作的超时秒数,1~86400,实际超时处理由mysql决定,此处设置仅供参考,超时将抛出错误,但可能不关闭连接。
    返回的mysql对象为table类型,可以自行增加内容或包装函数。

执行展开

  • + mysql:runs(statements)

    批量执行sql命令,可用;分隔,无参数,忽略执行结果。
    如果数据库返回了错误,将抛出,不关闭连接。

  • + result, insertid = mysql:run(statement,param...)

    执行一条sql命令,可指定多个参数。
    如果是查询语句,无论是否有查询结果,都返回行集table或者列集table(参见{mysql:columns})。
    如果是操作语句,返回操作影响的行数,和最后插入的自增id,此id由mysql提供,可能不准确。
    每个语句按照prepared statement发送给数据库,并记住返回的结果类型。
    如果数据库返回了错误,将抛出,不关闭连接。

模式展开

  • + mysql = mysql:columns()

    下一个mysql:run调用返回列集,之后恢复行集。
    mysql:run默认返回行集数组,按数据库返回顺序,下标递增,每个行本身也是table,以列名为key,列值为value。
    类似: { [1]={ id=1, name='a' }, [2]={ id=2, name='b' } },通常适合将每行数据当作结构或对象处理。
    而返回列集table时,以列名为key,value为列值数组,按数据库返回顺序,下标递增,每个行的对应列值作为内容。
    类似: { ['id']={ [1]=1, [2]=2 }, ['name']={ [1]='a', [2]='b' } },通常适合返回的列少,而行数很大。
    返回mysql便于串联调用。

  • + mysql = mysql:exclude(columnName...)

    下一个mysql:run调用忽略若干列,之后恢复全部列。
    mysql:run查询语句的所有列默认全部返回。
    exclude列名,如果是行集,则每个行table没有这个列名和列值,如果是列集,则没有这个列名和列值数组。
    恢复各种模式为默认值。
    cleanPrepare非false非nil,则同时清除所有prepared statement分析结果。
    返回mysql便于串联调用。

关闭展开

  • + closed = mysql:closed()

    返回数据库连接是否关闭。

  • + mysql:close()

    关闭数据库连接。

类型展开

  • +

    支持的mysql数据类型,及对应的lua转换

    Mysql类型Lua类型
    bigint整数 -253 ~ 253-1
    blob字节串
    char字符串、字节串(仅限参数传入)
    double浮点数
    float浮点数
    int 整数 -231 ~ 231-1
    smallint整数 -215 ~ 215-1
    text字符串、字节串(仅限参数传入)
    tinyint整数 -27 ~ 27-1、boolean(仅限参数传入)
    varchar字符串、字节串(仅限参数传入)

问题反馈(登录才可以发表哦!)