0

PHPを使用してデータベースにいくつかの値を追加しようとしています。Androidアプリケーションからいくつかのパラメーターを送信します。これらのパラメーターも正しい方法で到着します。エコーでチェックし、送信したすべてのパラメーターを印刷しました。

id (PRIMARY_KEY, AUTO_INCREMENT)

deviceID (TEXT)

name (TEXT)

latitude (TEXT)

longitude (TEXT)

それが構造であり、データベースの名前は位置です

これは私の質問ですが、うまくいきません。

$deviceID = $_POST['deviceID'];
    $name = $_POST['name'];
    $latitude = $_POST['latitude'];
    $longitude = $_POST['longitude'];

$result = mysql_query("INSERT INTO position(deviceID, name, latitude, longitude) VALUES('$deviceID', '$name', '$latitude', '$longitude')");
4

2 に答える 2

2

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_position

Positionpositionは MySQL の関数名です。バッククォート (`) を使用してエスケープし、 と括弧の間にスペースを追加する必要があります。

$result = mysql_query("INSERT INTO `position` (deviceID, name, latitude, longitude) VALUES('$deviceID', '$name', '$latitude', '$longitude')");
于 2012-10-25T13:11:45.397 に答える
0

聞いてください、非推奨の関数の使用をやめる必要がありmysql_*ます。彼らはあなたに多くの頭痛を引き起こします。使用するように mysql をセットアップすることをお勧めしますPDO。ここに例があります。

最初にそれに接続し、自分で処理するために例外をスローさせます。

try {
    $pdo = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

更新を実行します。

try { 
  $stmt = $pdo->prepare('INSERT INTO position VALUES(:deviceId, :name, :latitude, :longitude)');
  $stmt->execute(array(
    ':deviceId' => $deviceID,
    ':name' => $name,
    ':latitude' => $latitude,
    ':longitude' => $longitude 
  ));

  // Affected Rows?
  echo $stmt->rowCount(); // 1

} catch(PDOException $e) {

  echo 'Error: ' . $e->getMessage();
}

// ご質問ごとに json_encode へ

execute()ステートメントを同じ方法で (ただし を使用して)呼び出した後は、SELECTこれを実行するだけです。

$results = $stmt->fetchAll(PDO::FETCH_ASSOC); // This will be an array
$json_results = json_encode($results);

あなたがそれをオブジェクトとして取得したい場合は、後で行を下ります(私はそれを扱うことを好みます)

$results = $stmt->fetchAll(PDO::FETCH_OBJ);

また、単一の結果を得たい場合は、fetch()

$result = $stmt->fetch(PDO::FETCH_ASSOC);
于 2012-10-25T13:15:04.527 に答える