0

我有以下名为 $words 的数组

Array
(
[0] => Array
    (
        [token] => dwA
        [pos] => *DII.7,8*
    )

[1] => Array
    (
        [token] => nTr
        [pos] => *DI.5,9*
    )

[2] => Array
    (
        [token] => dwA
        [pos] => *DI.2,8*
    )

[3] => Array
    (
        [token] => nTr
        [pos] => *DI.2,8*
    ))

我想用以下内容插入它:

foreach ($words as $value)
    {
    $word = $value['token'];
    $attestation = $value['pos'];
    $insert="INSERT INTO Examples (Word, Attestation) VALUES ('$word', '$attestation')

    mysql_query($insert) OR die(mysql_error());
    }

表“示例”有一个名为 ID 的键,具有自动增加功能;字段词是“唯一的”

我想要的是在“证明”字段中,每次“单词”相同时都会添加值

所以结果应该如下:

Id    word        Attestation
1     dwA         *DII.7,8*, *DI.2,8*
2     nTr         *DI.5,9*, *DI.2,8*

所以我尝试添加一个“重复键”短语

 foreach ($words as $value)
    {
    $word = $value['token'];
    $attestation = $value['pos'];
    $insert="INSERT INTO Words2 (Word, Attestation) VALUES ('$word', '$attestation')
          on duplicate key update Attestation = 
 ";
    mysql_query($insert) OR die(mysql_error());
    }

但我无法弄清楚我必须在 Attestation = 之后添加什么,以便一个接一个地添加不同的证明,例如:DI.5,9DI.2,8 或者是“重复键”不是正确的方法吗?

4

1 回答 1

1

尝试这个;

INSERT INTO Words2 (Word, Attestation) VALUES ('$word', '$attestation') 重复键更新 Attestation = CONCAT(Attestation, ', ', '$attestation')

虽然,稍后将这些值分开可能有点困难。您可能需要考虑另一个表,以便建立一对多关系。

于 2011-11-30T22:34:47.053 回答