我的一张表里面的某字段类型是varchar(32),唯一,然后我写了个存储过程去查询该字段,把符合该字段的记录取出来:
create procedure testp(i_name varchar(32))
begin
  select * from t where `name` = i_name;
end我现在用C API来调用该存储过程,传递的值刚好是32个字节,如果包括'\0'的话,有33个字节:
if(mysql_query(&mysql, "call testp('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')") != 0)
{
//...
}我调试的时候是正常的,能正常调用,程序无报错,但进行长时间的运行时,程序崩掉了,不知道这样会不会造成溢出呢,我是不是要把存储过程的参数i_name的长度定义得大一点才行?