在写今天的正经内容之前,我真的是要吐槽一下我的英语水平(也有可能是打字水平)!!!Yii报错:
Getting unknown property: common\models\Vborrow::browid
吓得我从vborrow, vborrowSearch, vborrowController, vborrow/index找了半天,原来是拼写错误!!”borw”不是”brow”!我觉得这个错误和sxr同学的”model”—“module”有异曲同工之妙……
mySql的存储过程
语法
事先用“DELIMITER $$”或“DELIMITER //”声明当前段分隔符,让编译器把两个”//“之间的内容当做存储过程的代码,不会执行这些代码;“DELIMITER ;”的意为把分隔符还原。
1 | delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义) |
然后问题就来了,我在mySql里写的存储过程,是要更新某一个值,没有语法错误,成功执行了,但是结果显示影响了0行。
1 | set @p0='c1',@p1='120' call proc_update(@p0,@p1) |
错误的代码大概会在我交完作业之后放上来。大概的函数体是:
1 | begin |
经过测试,这么写的话,不管是什么condition,两个statement都没有执行。
上面都是废话。直接写解决方法吧——
存储过程中要有打印,比如在end if后面加
1 | select @p0,@p1 |
参数名要改成
1 | @p0,@p1 |
不知道为什么,试了很久,这样改的时候就正常工作了。
另外补充,MySQL中的注释有三种:
1 | -- 一般用于单行注释(注意 -- 后面要有空格!) |