【问题标题】:ngTagsInput 3.2.0 array insert with PHPngTagsInput 3.2.0 使用 PHP 插入数组
【发布时间】:2018-03-22 00:12:58
【问题描述】:

我是初学者,我正在尝试保存支持使用字符串的 ng-tags-input 版本 3.2.0。我正在尝试通过 PHP 保存标签中的项目。

我经历了内爆,但它没有显示或保存任何内容。 如果没有 implode,项目将出现在一个字符串中。

我不知道问题是什么。你觉得我可能用错了数组吗?

请帮助我。我已经为此苦苦挣扎了 5 天......

[AngularJS]

<tags-input ng-model="tags" use-strings="true"></tags-input>

[controller.js]

$scope.tags = [];
$http.post("insert.php", {
tags : $scope.tags})

[插入.PHP]

$data = json_decode(file_get_contents("php://input"));
$tags_array_raw = $data->tags;
$tags_array = implode(", ", $tags_array_raw);
foreach($tags_array as $tags_mid) {
    $tags.="$tags_mid";
}
$conn->query("INSERT INTO `table` (tags) VALUES('$tags')") or die(mysqli_error());

除了数组类型,正常的INPUT都保存的很好。

我不知道从这里去哪里,请就这个“标签输入数组保存”问题告诉我。我希望这对其他人也有帮助。

提前谢谢你!!

【问题讨论】:

    标签: javascript php mysql angularjs arrays


    【解决方案1】:

    不要将字段保存为 json 或逗号分隔的列表,这会违反规范化的第一条规则 (1NF),而是考虑为“数组”创建另一个表,类似于:

    create table child(
        parent_id int
        field ...
    

    )

    这样你就可以通过这样做来取回数据:

    select * from child where parent_id = ...
    

    希望有帮助!

    【讨论】:

    • 感谢您的建议。但是,我需要按原样保存。我认为语法或表达式不正确,但不起作用。您还有其他建议吗?
    • 那么我猜你可能想要对 $tags 进行 json_encode,但我仍然认为这是个坏主意。
    • 感谢您的建议。我会注意的!希望这对其他人也有帮助。
    • 我很高兴能帮上忙! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 2012-05-19
    • 2017-10-03
    • 1970-01-01
    相关资源
    最近更新 更多