|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴。 php保留数据到mysql
盘算在dao层停止数据入库前的清算,好比varchar停止trim,int停止intval。
有一天俄然想起,php intval的取值局限与mysql的int类型一样吗?
查了一下,纷歧样……
http://php.net/manual/en/function.intval.php
http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#numeric-types
php intval的取值局限:与操作体系相干,32位体系上为-2147483648到2147483647,64位体系上为-9223372036854775808到9223372036854775807。
mysql int取值局限:与操作体系有关,为-2147483648到2147483647,无符号为0到4294967295。
mysql bigint取值局限:与操作体系有关,为-9223372036854775808到9223372036854775807,无符号为0到18446744073709551615。
所以上面的代码是毛病的:
复制代码 代码以下:
public function insert($data)
{
if(isset($data['content'])&&!empty($data['content']))
{
$data_for_query['content'] = trim($data['content']);
}
else
{
return false;
}
if(isset($data['user_id'])&&!empty($data['user_id']))
{
$data_for_query['user_id'] = intval($data['user_id']);
}
else
{
return false;
}
$sql = "INSERT INTO `".$this->table_name."` (".$this->db->implodeToColumn(array_keys($data_for_query)).") VALUES (".$this->db->implodeToValues(array_values($data_for_query)).")";
$this->db->query($sql);
$id = $this->db->lastInsertId();
if(empty($id))
{
return false;
}
else
{
return $id;
}
}
处理举措:还在想,筹办用正则表达式。根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。 |
|