2012-05-12 115 views
0

我目前正在开发一个有趣的项目,涉及Ajax,HTML,JavaScript,PHP和SQL。数据库更新错误数据

我已经尽我所能调试了我的项目,并且我100%确定我的AJAX,HTML和JavaScript工作正常,并且我的变量正确发送到服务器。

我想从数据库中提取数据,从这个数据中减去一个数字(在表单中提交)并相应地更新数据库。

我的数据库确实更新。但是,它不显示正确的数字。在表单中提交1时,它总是会在数据库中返回相同的数字。 (这很奇怪,因为我正在减去它......)。我100%确信表单中的数据正确传递给服务器,所以我希望你们都检查我的服务器文件,这应该是问题所在。

编辑: 数据库连接在db.php中进行,并且设置正确。这已经过测试。

回答

2

您确实需要切换到准备好的语句来修复您的sql注入问题。

除此之外,这个特定的代码有什么问题,mysql_query不返回一个数字,它返回一个资源。您需要获取一行以获取号码。

+0

感谢一大堆!我会研究这些,谢谢你的快速回复! – user1390504

1

我想你弄错的mysql_query返回值,看看php's manual

mysql_query返回资源然后可以传递给其他一些funcion提取由您查询返回的值。你应该做这样的事情:

$res = mysql_query(...) 
$row = mysql_fetch_assoc($res) 
$dec = $res["column_name"] - $some_value 

您应该检查$ _REQUEST [...]数组值,以消除sql injection漏洞。

1

据我所知,mysql_query返回resource,而不是结果本身。所以,你必须修改代码以这样的事:

$res = mysql_query("your_query_here"); 
$row = mysql_fetch_row($res); 
$totaalaantal = $row[0]; 

检查http://php.net/manual/en/function.mysql-query.php