2012-04-30 171 views
0

这里还有一个奇怪的一个:PHP,MYSQL记录未更新

这里是我的PHP:

$query = "SELECT iVal, iOwn FROM item WHERE item = ".$_GET['Item']; 
$result9 = mysql_query($query, $_SESSION['connect']); 
$row9 = mysql_fetch_array($result9); 
$query = "UPDATE chars SET chCred = chCred + ".$row9['iVal']." WHERE chNum = ".$row9['iOwn']; 
mysql_query($query, $_SESSION['connect']) or die('Error 2:'.mysql_error()); 

当我运行它,并做$查询的var_dump我得到这个:

UPDATE chars set chCred = chCred + 100000 WHERE chNum = 2 

当我在phpMyAdmin中运行这个查询时,记录得到了正确更新,但是当我运行代码时记录没有被更新,我也没有收到错误信息。

+4

您的第一个('SELECT')查询容易受到SQL注入的影响。你真的**应该使用准备好的语句,将你的变量作为参数传递给你,这些参数不会被SQL评估。如果你不知道我在说什么,或者如何解决它,请阅读[Bobby Tables](http://bobby-tables.com)的故事。 – eggyal

+0

如果你使用[一些错误处理](http://snipplr.com/view/45252/goede-foutafhandeling-mysql/),你会得到什么? –

+0

另外,也使用'mysql_error()'的链接标识符。 'mysql_error($ _ SESSION ['connect'])' – Shocker

回答

0

Web服务器上的数据库连接是否需要您手动提交更新?如果SQL在手工输入时正常工作,那么您的数据库连接没有自动设置,或者将查询传递到数据库时出现问题,正如其他人所说的那样,您可以通过添加错误处理来检查数据库。