0

PHP mysqli 準備済みステートメントで文字列と変数を連結するための正しい構文は何ですか?

私が今持っているコードはこれです:

        if ($test_stmt2=$mysqli->prepare("UPDATE friends SET friendslist=friendslist+','+? WHERE friendsuserid=? ")) { //Insert userid and frienduserid into friends table
               $test_stmt2->bind_param('si', $friendid, $userid); //Bind parameters (friend user id, your own user id)
               $test_stmt2->execute(); //Execute the prepared query
               echo "success";
        }

基本的に、列の文字列を取得しfriendslist、カンマを追加してから$friendid、テーブルのそのセルに別の変数文字列 ( ) を追加しfriendsます。

4

1 に答える 1

2

SQL連結が必要なようです。

ただし、この目的で使用しないでください。あなたのデータベース構造は、神聖な正規形に対する大罪です。

コンマ区切りの値をデータベース セルに保存しないでください。対応する値を格納する個別のテーブルを作成します。

userid | friendid
     1 |        2
     1 |        3
     1 |        5
     5 |        1
     5 |        2
     2 |       10

この方法では、次のような通常の挿入クエリが必要になります。

INSERT INTO friendslist SET friendid = ?, userid = ? 

それは近い将来あなたにたくさんの髪を救うでしょう

于 2013-08-09T21:13:20.103 に答える