2012-03-12 18 views
2

私の更新フォームで問題を見ることはできませんが、私は何をしてもデータベースを更新しません。 ここにいる誰かが私を助けてくれることを願っていました。MySQLはデータベースを更新しません

私は更新ステートメントの後にmysql_error()を使用しようとしましたが、エラーは見つからず、更新ステートメントをエコーし​​て何の問題も見られませんでした。 ?

URL = http://localhost/maga/php/update_red.php?id=6&read=14

<?php 
$host="localhost"; 
$pass="*****"; 
$user="my_db_user"; 
$db="my_db_name"; 
$tblname="artikler"; 

$con=mysql_connect($host, $user, $pass)or die(mysql_error()); 
mysql_select_db($db)or die(mysql_error()); 

$read=(int)$_GET['read']; 
$id=$_GET['id']; 

$read++; 

mysql_query("UPDATE $tblname SET read='$read' WHERE id='$id'"); 

>

+1

私はあなたが投稿しているあなたの実際のdbのログインデータではないことを願っています。 –

+0

それは閉じたサーバなので、何にでもデータを使用することはできません;) – Slartibadfast

+0

おそらく、ローカルホストだから、彼のIPは分かりません。 – DanRedux

答えて

0

クエリを出力してみてください。

print("UPDATE $tblname SET read='$read' WHERE id='$id'"); 

また、あなたのIDフィールドは、数ありますか?そうであれば、あなたの周りにある引用符を取り除いてください。

0

は非常に単純なことを行う、echo "UPDATE $tblname SET read='$read' WHERE id='$id'";
はphpmyadminのか、どんなツールを使用すると、MySQLのクエリを記述するために使用してから、クエリを実行してみてください。


それはあなたにエラーを与える場合は、あなたのするmysql_queryのデータベース接続渡していない...

+0

が問題を発見しました。私は 'read'がSQL値であると思います。しかし、大きなアドバイスのおかげで... – Slartibadfast

0

を参照してください:

mysql_query("UPDATE $tblname SET read='".$read."' WHERE id='".$id."'", $con); 
+0

あなたはmysql_queryを使う必要はありません。 – fred2

2

readreserved word,ですので、特別に引用される必要がありますクエリで機能するためのバッククック付きで

if (!mysql_query("UPDATE $tblname SET `read`='$read' WHERE id='$id'")) 
{ 
    die("update failed with error ".mysql_error()); 
} 

また、$ id値は何らかの方法でサニタイズされていないため、コードはSQLインジェクション攻撃の影響を受けます。間違いなくそのようなことについて学ぶ時間を費やす価値があります。

0

このコードを試してみてください。

<?php 
$host="localhost"; 
$pass="*****"; 
$user="my_db_user"; 
$db="my_db_name"; 
$tblname="artikler"; 

mysql_connect($host, $user, $pass)or die(mysql_error()); 
mysql_select_db($db)or die(mysql_error()); 

$read=(int)$_GET['read']; 
$id=$_GET['id']; 

$read++; 

mysql_query("UPDATE $tblname SET read='$read' WHERE id='$id'"); 

mysql_close(); 

?> 
0

この

\\In your script add the below line and try whether its working 
$con=mysql_connect($host, $user, $pass)or die(mysql_error()); 
mysql_select_db($db,$con)or die(mysql_error()); 
0

は私は列の名前を変更したときに、私は何の問題もなかったので、「読み取り」はSQL値だと思う、問題を発見してみそれを更新する...しかし、すべての良いアドバイスのおかげで...

+0

これは私があなたに昨日与えた答えです:) –

関連する問題