1

Snow Leopard で PHP Mongo を使用していますが、次のエラーが発生し続けます。

「未定義の変数」と「非オブジェクトのプロパティを取得しようとしています」

私がやろうとしていること:

URL から変数を抽出して (以下と同様)、mongo db 内のコレクションに入力します。さらに、ユーザーの IP アドレスとアクションが行われた日時を取得しようとしています。

可能な URL の例を次に示します。

img src="http://localhost:8888/index.php?PIN=123&CID=123&EID=456" width="1" height="1"

PHP/Mongo ドライバー スクリプト:

<?php
  // Connect to MongoDB @ localhost w/ login/pass
  $m = new Mongo("mongodb://login:pass@localhost");

  // Connect to DB
  $db = $m ->admin;

  // Connect to Collection
  $collection = $db ->email_opens;

  // Extract date
  $createdOn = $id->getTimestamp();
  $date_open = date('r', $createdOn);

  // Get variables from URL
  $PIN = $_GET['PIN'];
  $CID = $_GET['CID'];
  $EID = $_GET['EID'];

  // Retrieves user's IP address
  $ip = $_SERVER["REMOTE_ADDR"];

  // Set array
  $obj = array('PIN' => $PIN, 'CID' => $CID, 'EID' => $EID, 'date_open' => $date_open, 'ip' => $ip); 

  // Set index
  $collection -> ensureIndex(array("id" => 1));

  // Insert collection
  $collection -> insert($obj);

  // Probably not necessary
  $connection -> close();
?>
4

1 に答える 1

1

これは明らかにMongoDBの問題ではなく、phpの問題にすぎません。Justin Jenkinsがコメントしたように、質問する前に$idを設定していません。

より多くのMongoDBパーツでは、 idフィールドに(挿入するサンプルオブジェクトに関して)役に立たないものを作成しています。生成されたIDにインデックスを作成する必要はありません。これは、mongoサーバーによって自動的に行われます。また、フィールドの正確な名前は_id(アンダースコア付き)です。

于 2012-07-13T11:57:13.957 に答える