最近在修改一个程序,打算将$video这个参数保存到数据库。修改的过程中出现错误。导致该程序不能发布新文章。在程序的一个db.php程序文件里使用var_dump($input, $stmt) ; 语句看到了错误信息,并找到了错误原因。信息里包含的错误代码是:

SQLSTATE[22007]: Invalid datetime format。

经过查找原因,原来是查询模版与查询数据里的数据值没有一一对应。导致每一次相同的查询都报错,导致不能发布新文章。

例如:预查询模版是:

 $add_id = db_exec(DB_LASTID, 'INSERT INTO `cms_article` (`cid`,`title`,`author`,`show`,`content`,`keywords`,`description`    ,`thumb`,`time`,`video`) VALUES(?,?,?,?,?,?,?,?,?,?)', 'isssssssss', $input);

但是数据$input数组里的数据顺序是这样的:

$input[cid, title, author, show, content, keywords, description, thumb, video, time]

这会导致上面的那一条语句执行报错。

变量$input在一个php文件的三个地方分别进行了赋值,第一次赋值了$input[cid, title, author, show, content, keywords, description] ,第二次赋值了$input[thumb, video],接下来修改了$input[thumb, video]的值,第三次赋值了$input[time] 。分散赋值,增大了发现该问题的难度。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐