国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php數據入庫前清理 注意php intval與mysql的int取值范圍不同

2024-05-04 23:05:59
字體:
來源:轉載
供稿:網友

php數據入庫前清理 注意php intval與mysql的int取值范圍不同,需要的朋友可以參考下。
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; } } 

解決辦法:還在想,準備用正則表達式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚州市| 息烽县| 仁怀市| 秦安县| 贵州省| 镇远县| 林州市| 锡林浩特市| 威海市| 屯留县| 清丰县| 河源市| 封开县| 广东省| 大悟县| 临洮县| 越西县| 云安县| 梧州市| 蒲城县| 巴彦淖尔市| 崇阳县| 外汇| 建德市| 孟连| 绍兴县| 浏阳市| 郧西县| 平塘县| 绥德县| 昌邑市| 于都县| 乐清市| 文安县| 华池县| 东兰县| 白河县| 鞍山市| 铅山县| 长丰县| 石台县|