0
mysqli_stmt_bind_param($proc, "iss$is", $respondent_id, $ip, $browser, $qStr1);

$qStr1$q1、$q2 などのテキストが含まれているにもかかわらず、問題を引き起こしているのはこれだけです。$qStr1コード内で単一の変数として扱われていると思います。テキストを抽出して使用する必要があると思いますが、方法がわからない?

以下の回答を使用して、以下を変更および追加しました。

$qStr = '';
    $markStr = '';
    for($i=1; $i<11; $i++)
    {
        $qStr .= 'q'.$i.'';
        $qStr1 .= '$q'.$i.'';
        $markStr .= '?';
        $is .= 'i';
        if($i < 10)
        {
            $qStr .= ', ';
            $qStr1 .= ', ';
            $markStr .= ', ';
        }
    }

$proc = mysqli_prepare($link, "INSERT INTO tresults (respondent_id, ip, browser, $qStr) VALUES (?, ?, ?, $markStr);");
mysqli_stmt_bind_param($proc, "iss$is", $respondent_id, $ip, $browser, $qStr1);

今、私は問題を抱えて$qStr1います-これがループして正しい出力$q1、$q2などを提供しているにもかかわらず-手動で$q1、$q2などをmysqli_stmt_bind_paramandに配置すると、DBに保存されません残りはそのままにして、loop正常に動作します。

次のコードがあります。

$proc = mysqli_prepare($link, "INSERT INTO tresults (respondent_id, ip, browser, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");

mysqli_stmt_bind_param($proc, "issiiiiiiiiii", $respondent_id, $ip, $browser, $q1, $q2, $q3, $q4, $q5, $q6, $q7, $q8, $q9, $q10);

mysqli_stmt_execute($proc);

私が達成しようとしているのは、そのコードに を自動的に配置し、そこに正しい数を配置するloopことです (少なくともそうだと思います) 。q1, q2, q3, q4, q5 etc.?

質問は明確で、誰でも支援できますか?

4

2 に答える 2

0

編集しました!

$proc = mysqli_prepare($link, "INSERT INTO results 
          (respondent_id, ip, browser, $qStr) VALUES (?, ?, ?, 
            ?,?,?,?,?,
            ?,?,?,?,?);"
            );
mysqli_stmt_bind_param($proc, "iss$is", $respondent_id, $ip, $browser, 
            $q1,$q2,$q3,$q4,$q5,
            $q6,$q7,$q8,$q9,$q10
            );
mysqli_stmt_execute($proc);

読みやすくないですか…?

于 2013-07-25T11:20:43.357 に答える