2012-04-30 4 views
0

を更新されていないがここでは別の奇妙一つだ:PHP、MYSQLレコードは

ここに私のPHPの:

UPDATE chars set chCred = chCred + 100000 WHERE chNum = 2 
:私はこれを取得、私はそれを実行すると

$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を行います

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サーバー上のデータベース接続で更新プログラムを手動でCOMMITする必要がありますか?手動で入力したときにSQLが動作している場合、データベース接続に自動コミットが設定されていないか、クエリーをデータベースに渡す際に問題があります。エラー処理を追加してチェックアウトできます。

関連する問題