1

私はPHPとMySQLに少し慣れていないことを述べることから始めます。セッション変数を MySQL データベースに書き込もうとしています。HTML フォームを使用して最初のレコードを送信できた後、これを正しく実行したと思いましたが、追加のレコードを送信できません。データベースには 1 つのレコードしか表示されず、新しいレコードを送信しようとしてもエラーは発生しませんが、単にデータベースに表示されません。

私のフォームは複数のページにまたがっているので、PHP コードを含めます。

<?php

  $con = mysql_connect("localhost","user","mypassword");
  if (!$con)
  {
    die('Could not connect: ' . mysql_error());
  }

  mysql_select_db("mydatabase", $con);

  mysql_query("
    INSERT INTO imaging (os,MAC,Model,AntiVirus,Browser,Email,Connectivity,Sound,Ports) 
    VALUES ('".$_SESSION['imaging2']."','".$_SESSION['imaging3']."','".$_SESSION['imaging4']."','".$_SESSION['antivirus']."','".$_SESSION['browser']."','".$_SESSION['email']."','".$_SESSION['connectivity']."','".$_SESSION['sound']."','".$_SESSION['ports']."')
  OR die("Could not update: ".mysql_error());

  mysql_close($con);

?>

私のテーブル名は:imaging

私のデータベースの列は次のとおりです。

id - My primary key field set to Auto_Increment, type is int(11)
os - text
MAC - text
Model - text
AntiVirus - text
Browser - text
Email - text
Connectivity - text 
Sound - text
Ports - text

少なくとも 1 回は機能したため、これが主キー フィールドのコード解釈に問題があることは明らかです。

どんな助けでも大歓迎です。そしてねえ、誰が知っていますか?たぶん、私の目を交差させずに再びクリアにするのに十分な時間、コンピューターから離れるだけの問題です. :)

PHP コードに id フィールドへの参照がありませんか?

4

1 に答える 1

2

これが本当にあなたのコードである場合は、 への呼び出しに問題がありますmysql_query。構文の強調表示でわかるように、それは正しくありません。最後に追加が必要です")

mysql_query("
  INSERT INTO imaging (os,MAC,Model,AntiVirus,Browser,Email,Connectivity,Sound,Ports) 
  VALUES ('".$_SESSION['imaging2']."','".$_SESSION['imaging3']."','".$_SESSION['imaging4']."','".$_SESSION['antivirus']."','".$_SESSION['browser']."','".$_SESSION['email']."','".$_SESSION['connectivity']."','".$_SESSION['sound']."','".$_SESSION['ports']."')
") or die("Could not update: ".mysql_error());

ちなみに、このコードはSQL インジェクションに対して脆弱です。気をつけて!

于 2012-04-28T02:58:03.857 に答える