我编写了一个MySQL脚本来为假设的医院记录创建数据库并用数据填充它.其中一个表Department有一个名为Description的列,它被声明为varchar(200)类型.当为描述执行INSERT命令时,我得到一个错误1406 : __CODE__. 我插入的所有字符串都少于150个字符.
这是宣言:
__CODE__
这是插入命令:
从外表看,这应该是有效的.有人有见识吗?__CODE__
我有以下表结构:
DROP TABLE IF EXISTS `tblusers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tblusers` (
`UserID` int(5) NOT NULL AUTO_INCREMENT,
`ContactPersonID` int(5) NOT NULL,
`NameOfUser` varchar(70) NOT NULL,
`LegalForm` varchar(70) DEFAULT NULL,
`Address` varchar(70) DEFAULT NULL,
`City` varchar(50) DEFAULT NULL,
`Postal` int(8) DEFAULT NULL,
`Country` varchar(50) DEFAULT NULL,
`VatNum` int(10) DEFAULT NULL,
`Username` varchar(30) NOT NULL,
`Password` varchar(20) NOT NULL,
`Email` varchar(40) NOT NULL,
`Website` varchar(40) DEFAULT NULL,
`IsSeller` bit(1) DEFAULT NULL,
`IsBuyer` …Run Code Online (Sandbox Code Playgroud) 我在MySQL中有一个包含各种VARCHAR字段的表.我想通过PHP从表单中插入一些用户数据.显然,如果我知道PHP中的字段长度,我可以限制那里的数据长度substr().但是那种违反DRY(存储在MySQL中的字段长度以及我的PHP脚本中的常量).有没有办法让我配置一个INSERT,以便它自动切断过长的字符串,而不是失败?
编辑:当我有过长的字符串时,它在PHP/PDO中失败(或至少导致异常).不知道我在PHP/PDO中必须做什么,所以它做对了.
编辑2:呃.这是错误的做法; 即使我让它在INSERT上工作正常,如果我想检查一个重复的字符串,它将无法正常匹配.