1

わかりましたので、行内に動的データを挿入しようとしています。これはおそらく最善の方法ではありませんが、何時間も壁に頭をぶつけた後でも、なぜ$insert文字列が によってクエリされないのか理解できませんmysql_query。エコーされたものをクエリにコピーしてもecho機能しますが、変数をクエリしても機能しません。

$insert = '"INSERT INTO '.$_SESSION['tabsel'].' (';
echo "<form method='post' action=''>";
while($row = mysql_fetch_array($result))
{
    echo "Enter ".$row[0]." <input type='text' name='data[]'>";
    echo "<br>";
    $insert .= $row[0].",";
    $_SESSION['insert'] = $insert;
}

echo "<input type='submit' value='Add'>";
echo "</form>";
if(isset($_POST['data']))
{
    $insert = $_SESSION['insert'];
    $strlength = strlen($insert);
    $insert = substr($insert,0,($strlength-1));
    $insert .= " VALUES (";
    foreach($_POST['data'] as $value)
    {
        $insert .= "'$value',";
        $_SESSION['insert'] = $insert;
    }
}

$insert = $_SESSION['insert'];
$strlength = strlen($insert);
$insert = substr($insert,0,($strlength-1));
$insert .= ')"';
$_SESSION['insert'] = $insert;
$insert = $_SESSION['insert'];
echo $insert."<br>";
$seldb = mysql_select_db($_SESSION['sel']);
if($seldb && (!empty($_POST['data'])) && (isset($_SESSION['sel'])) && (isset($_SESSION['tabsel'])))
{
    $insert = $_SESSION['insert'];
    echo $insert;
    $query = mysql_query($insert, $con);
    if($query)
    {
        echo "Record succesfully added!";
    }
    else
    {
        echo mysql_error();
    }
}

与えられたエラー:

SQL 構文にエラーがあります。"INSERT INTO mtable (id,nr,d,ra) VALUES ('d','d','d','d')"1行目付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

4

1 に答える 1

1

エコーされた文字列を見てみる

"INSERT INTO druga (id,podaci,d,ra) VALUES ('d','d','d','d')"

SQL クエリに配置している先頭と末尾の引用符を削除する必要があります。次の 2 行のコードを変更します。

  • 先頭の引用符を削除します。

    $insert='INSERT INTO '.$_SESSION['tabsel'].' (';
    

    それ以外の

    $insert='"INSERT INTO '.$_SESSION['tabsel'].' (';
    
  • 末尾の引用符を削除します。

    $insert.=')';
    

    それ以外の

    $insert.=')"';
    
于 2012-04-29T10:42:42.457 に答える