今天我得到错误无效的参数号:参数在我的yii应用程序更新数据时没有定义.那么我来知道我的sql数据库表列包含名称与“ – ”符号,即“表格”等.
然后我用“_”改变了“ – ”,一切正常.
/* percentage losses senser*/ $attributes['totlcommloss_sensor'] = $_POST['totlcommloss_sensor']; $attributes['asp_hour_sensor']= $_POST['asp-hour_sensor']; $attributes['asp_daily_sensor'] = $_POST['asp-daily_sensor']; $attributes['asp_weekly_sensor']= $_POST['asp-weekly_sensor']; $attributes['asp_monthly_sensor'] = $_POST['asp-monthly_sensor']; $attributes['asp_5_day_senser']= $_POST['asp_5_day_senser']; /* cost losses */ //$attributes['costlosshourly'] = $_POST['acs-hourly']; if (0 != intval($user['id'])) { $command->update('alarm_settings',$attributes,'id=:id',array(':id' => intval($user['id']))); } else { $NumberOfRowsEffected = $command->insert('alarm_settings',$attributes); }
在您的情况下,表名中的“ – ”将被视为计算,而不是实际表名称的一部分.原因之一是MysqL只能为角色/单词赋予一个功能,并且不知道您在查询中的特定位置实际想要使用哪一个.
在MysqL中存在很多这些特殊字符或保留字.每次使用其中之一时,必须使用反引号.
反向标签将用于表和列标识符,但仅当标识符为MySQL reserved keyword时,或标识符包含超出限定集合的空格字符或字符时才需要(见下文)通常建议避免使用保留关键字作为列或表标识符,避免引用问题.
According to MySQL documentation,您不需要使用以下字符集引用(反引号)标识符:
ASCII:
[0-9,a-z,A-Z$_]
(basic Latin letters,digits 0-9,dollar,underscore)
您可以使用超出该集合的字符串作为表或列标识符,例如,包括空格,但是您必须引用(反引号)它们.
在你的情况下使用`table-post`(反引号!)而不是table-post应该工作
原文地址:https://www.jb51.cc/php/130623.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。