我的插入代码有什么问题,它会出现意外错误?

时间:2014-04-08 03:12:41

标签: php mysql codeigniter

我想请求您的帮助,我在插页中收到了error

Data truncated for column 'code' at row 1</p>
<p>INSERT INTO `permissions` (`employeeId`, `code`) VALUES ('2', '451</td');

我弄清楚什么是错的,它是&#34;

这是我的php:

if (count($permissionsArray) > 0) {
            // Insert the new permissions to the database.
            $sSQL = "INSERT INTO `permissions` (`employeeId`, `code`) VALUES ";
            foreach ($permissionsArray as $item) {  
                $sSQL.= "('$eid', '$item'),";
            }
            $sSQL = substr($sSQL, 0, strlen($sSQL)-1).";";
            // Execute Query.
            $this->db->query($sSQL);
        }

2 个答案:

答案 0 :(得分:0)

您尝试输入的数据比列定义允许的数据长。请提供您用于查看的查询。另外谷歌搜索错误信息:

http://forums.mysql.com/read.php?11,132672,132672#msg-132672 http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html 建议的解决方案是修改服务器的“严格模式”设置:

当本手册引用“严格模式”时,表示启用了STRICT_TRANS_TABLESSTRICT_ALL_TABLES中至少一个的模式。

答案 1 :(得分:0)

如果问题是<td,则可以使用strip_tags

轻松解决问题
  $text = '451</td';
echo strip_tags($text);
echo "\n";

**OUTPUT** : 451

由于您提到<td是问题

I figured out whats wrong and it's the "</td" and that is unacceptable in my database. Does anyone knows how to remove that "</td". - **from question**

这是我的php:

if (count($permissionsArray) > 0) {
            // Insert the new permissions to the database.
            $sSQL = "INSERT INTO `permissions` (`employeeId`, `code`) VALUES ";
            foreach ($permissionsArray as $item) {  
                            $item = strip_tags($item);//removing html tag
                $sSQL.= "('$eid', '$item'),";
            }
            $sSQL = substr($sSQL, 0, strlen($sSQL)-1).";";
            // Execute Query.
            $this->db->query($sSQL);
        }

同时查看与您的问题类似的答案

data-truncated-for-column-xxxx-at-row-1

mysql-data-truncated-for-column-advance-at-row-1

error-data-truncated-for-column-lat-at-row-1

Data truncate for coloumn

从上面的链接我也建议你检查你的服务器模式设置,如下面的答案kalp建议

data truncated for column XX at row 1

sql-mode