-3

私はPHPとSQLスクリプトにかなり慣れていないので、これはおそらく私が理解できない簡単な修正です。その下にアセットテーブルがあるInventoryControlというデータベースがあります。PHPとSQLを理解できるようにするためのテスト目的で、単一のフォームを備えた非常に単純なWebページを作成しました。

<form action="insertasset.php" method="post">
Asset Tag: <input type="text" name="assettag" />
<input type="submit" />
</form>

送信時に、次のphpスクリプトが読み込まれます。

<?php
echo "PHP TEST!";
echo $_POST["assettag"];
$con=mysql_connect("localhost","sampleuser","samplepass");
if (!$con)
  {
  echo "CONNECTION FAILED!";
  die('Could not connect: ' . mysql_error());
  }
echo "I succeeded!";
mysql_select_db("InventoryControl", $con);

$sql="INSERT INTO assets (asset_tag, manufacturer, model, type, location, decomissioned, employee_owner, computer_name, price, day, month, yea$
VALUES
('$_POST[assettag]', asdf, asdf, asdf, 0, 0, asdf, asdf, 0, 0, 0, 0)";
echo "Posted!";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  echo "I didn't work";
  }
echo "1 record added";

mysql_close($con);


?>

失敗が発生する場所を確認するために、そこに複数行のエコーを追加しましたが、PHPスクリプトの実行から得られる唯一の応答が「PHPTEST!」であるという問題に悩まされています。次に、前のフォームから投稿した情報です。つまり、PHPスクリプトをロードしていて、フォームからデータを送信していることはわかっていますが、テーブルに取り込むことができないようです。私の知る限り、テーブルには列を入力するための要件はありません(かなり基本的なパラメーターを使用して設定しました。asset_tagが主キーであり、それ以外の場合はデータを保持するための列のみです)。誰かが初心者に助けを与えることができれば、それは大いにありがたいです。

4

2 に答える 2

1

mysql_query()関数を使用する場合は、次のように使用します。

mysql_query("...") or die(mysql_error());

そうすれば、エラーが表示されます。

問題が発生した場合は、INSERTINTOステートメントで値を一重引用符で囲む必要があります。

ただし、列名を一重引用することもできます。列名は、「order」などの特別なキーワードである場合があります。

mysql_error()と一緒に使用すると、エラーの詳細をより明確に確認できます。

于 2012-05-08T17:44:51.580 に答える
0
$asset=$_POST['assettag'];
$sql="INSERT INTO assets VALUES ('".$asset."', 'asdf', 'asdf', 'asdf', 0, 0, 'asdf', 'asdf', 0, 0, 0, 0)";
echo "Posted!";
if (!mysql_query($sql))
{
 die('Error: ' . mysql_error());
 echo "I didn't work";
}
于 2014-04-24T00:51:52.427 に答える