dousuie2222 2016-06-01 19:35
浏览 46

通过PDO调用存储过程时,不保存MySQL ENUM值

I have created this stored procedure:

CREATE PROCEDURE LogAdd(
    IN log_title VARCHAR(128),
    IN log_type ENUM('message','warning','error'),
    IN log_info TEXT
) 
DETERMINISTIC 
MODIFIES SQL DATA 
COMMENT 'Insert a new log entry' 
BEGIN
    INSERT INTO `tbl_logs` (
        `title`,
        `type`,
        `info`
    )
    VALUES (
        log_title,
        log_type,
        log_info
    );
END

which works when executed with data directly added in the query. But when I bind parameters, the type column, which is of ENUM type, is not saved (is empty). I can see that the value is sent as a string:

$stmt = $pdo -> prepare("CALL LogAdd(?, ?, ?)");
$stmt -> bindParam(1, 'Message title');
$stmt -> bindParam(2, 'message');
$stmt -> bindParam(3, 'Message information');

$stmt -> execute();

Why isn't the ENUM value saved?

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥15 Oracle触发器记录修改前后的字段值
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题