获取php数据库查询时出错

获取php数据库查询时出错,php,mysql,Php,Mysql,我对php了解不多。这是我用来从android发送数据的php。但在测试时,我是从html使用它的。从这个html我发送iddevice、latitud和longitud变量 正如您在php代码中所看到的,首先,我从数据库的html中获取与iddevice相关的名称 问题是我没有从数据库中获取name变量。名称应该是manuel,但在我的mysql数据库中,我得到的是资源id 2。数据库行iddevice、latitud和longitud中的其他变量是正确的 你知道为什么会这样吗?提前thx p

我对php了解不多。这是我用来从android发送数据的php。但在测试时,我是从html使用它的。从这个html我发送iddevice、latitud和longitud变量

正如您在php代码中所看到的,首先,我从数据库的html中获取与iddevice相关的名称

问题是我没有从数据库中获取name变量。名称应该是manuel,但在我的mysql数据库中,我得到的是资源id 2。数据库行iddevice、latitud和longitud中的其他变量是正确的

你知道为什么会这样吗?提前thx

php代码:

<?php

// conexion a la base de datos
mysql_connect("xxx", "xxx", "xxx") or die (mysql_error());

mysql_select_db("qry899");

// conseguimos el nombre
$newname = mysql_query("SELECT nombre FROM gcm_v3 WHERE iddevice='".$_POST["iddevice"]."'") or die(mysql_error());

// insertamos id de registro devuelto por el GCM
mysql_query("INSERT INTO position (iddevice, nombre, latitud, longitud) VALUES ('".$_POST["iddevice"]."', '$newname', '".$_POST["latitud"]."', '".$_POST["longitud"]."')") or die(mysql_error());

mysql_close();

?>
您应该使用mysql\u fetch\u assoc$res获取一行,如:

+请避免使用mysql。使用或


您实际上不是从数据库中提取值,您需要使用mysql\u fetch\u assoc:

正如其他人提到的,您应该避免使用mysql*函数


最后,更改您的数据库登录详细信息,它们位于编辑历史记录中,因此任何人都可以访问它

只要您像这样做,我将永远不会工作mysql\u querySELECT nombre FROM gcm\u v3,其中iddevice='.$\u POST[iddevice]”。请尝试先将$\u POST[iddevice]分配给一个变量,然后在查询中使用该变量,如下所示:

<?php
// conexion a la base de datos
mysql_connect("xxx", "xxx", "xxx") or die (mysql_error());

mysql_select_db("qry899");

// conseguimos el nombre
$newname = mysql_query("SELECT nombre FROM gcm_v3 WHERE iddevice='".$_POST["iddevice"]."'") or die(mysql_error());

$row = mysql_fetch_array($newname);
$newname1 = $row['latitud'];

// insertamos id de registro devuelto por el GCM
mysql_query("INSERT INTO position (iddevice, nombre, latitud, longitud) VALUES ('".$_POST["iddevice"]."', '$newname1', '".$_POST["latitud"]."', '".$_POST["longitud"]."')") or die(mysql_error());

mysql_close();

?>
$device = $_POST["iddevice"];
mysql_query("SELECT nombre FROM gcm_v3 WHERE iddevice='$device'");

公共网站-使用您的常识,不要发布数据库登录详细信息…仅供参考,您完全可以使用。虽然你已经发布了你的数据库凭据,并且它们仍然在编辑历史记录中,但我认为这可能是你最不关心的问题problems@JayBlanchard我有一些根据上下文使用的代码。使用函数。我建议您使用并与之配合使用,或者mysql_*函数已被弃用,将从未来的PHP版本中删除。通过值进行循环将有所帮助。当$row=mysql_fetch_assoc$res1{echo$row[nombre];}时,请避免使用mysql_。使用mysqli或PDO实际上,在不使用预先准备好的语句的情况下,两者仍然可以接受SQL注入。@Fred ii--是的,但通过我提供的链接,读者将了解使用PDO或mysqli的好处和原因,而且我确信在这些链接中,有一些关于SQL注入的内容。嗯。。。我不打算浏览一页又一页的代码,希望能找到与您刚才所说内容密切相关的内容。最好的办法是简单地提及“准备好的声明”一词,OP可以在谷歌上搜索它。不客气。在这里,将这两个链接保存在文本文件中,并/或将其添加到您的答案中:最后更改您的数据库登录详细信息,它们位于编辑历史记录中,以便任何人都可以准确访问。然而,如果有什么问题,为了不让其他人看到,这个问题需要完全删除。
<?php
// conexion a la base de datos
mysql_connect("xxx", "xxx", "xxx") or die (mysql_error());

mysql_select_db("qry899");

// conseguimos el nombre
$newname = mysql_query("SELECT nombre FROM gcm_v3 WHERE iddevice='".$_POST["iddevice"]."'") or die(mysql_error());

$row = mysql_fetch_array($newname);
$newname1 = $row['latitud'];

// insertamos id de registro devuelto por el GCM
mysql_query("INSERT INTO position (iddevice, nombre, latitud, longitud) VALUES ('".$_POST["iddevice"]."', '$newname1', '".$_POST["latitud"]."', '".$_POST["longitud"]."')") or die(mysql_error());

mysql_close();

?>
$device = $_POST["iddevice"];
mysql_query("SELECT nombre FROM gcm_v3 WHERE iddevice='$device'");