ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Table->set [TOC] 设置行的数据,`Table`使用`key-value`的方式来访问数据。 ~~~ Table->set(string $key, array $value) : void ~~~ ## 参数 * `$key`,数据的`key`,相同的`$key`对应同一行数据,如果`set`同一个`key`,会覆盖上一次的数据 * `$value`,必须是一个数组,必须与字段定义的`$name`完全相同 > `swoole_table->set()`可以设置全部字段的值,也可以只修改部分字段 > `swoole_table->set()`未设置前,该行数据的所有字段均为空 > `set/get/del`是自带行锁,所以不需要调用lock加锁 > **Key非二进制安全,必须为字符串类型,不得传入二进制数据** ## 返回值 此函数没有返回值。 ## 使用示例 ~~~ $table->set('1', ['id' => 1, 'name' => 'test1', 'age' => 20]); $table->set('2', ['id' => 2, 'name' => 'test2', 'age' => 21]); $table->set('3', ['id' => 3, 'name' => 'test3', 'age' => 19]); ~~~ ## 设置超过最大长度字符串 如果传入字符串长度超过了列定义时设定的最大尺寸,底层会自动截断。 示例: ~~~ $table->column('str_value', swoole_table::TYPE_STRING, 5); $table->set('hello', array('str_value' => 'world 123456789')); ~~~ * `str_value`列最大尺寸为`5`字节,但`set`设置了超过5字节的字符串 * 底层会自动截取`5`字节的数据,最终`str_value`的值为`world`