我正在尝试使用PHP向数据库添加一些值我从Android应用程序发送一些参数,它们也以正确的方式到达。我用echo检查了它并打印了我发送的所有参数。
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')");
答案 0 :(得分:2)
http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_position
Position
是MySQL中的函数名:你应该使用反引号(`)来转义它,你需要在position
和括号之间添加一个空格。
$result = mysql_query("INSERT INTO `position` (deviceID, name, latitude, longitude) VALUES('$deviceID', '$name', '$latitude', '$longitude')");
答案 1 :(得分: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);