-1

UPDATE クエリを実行している mysql_query が機能しません。何が間違っていますか?

if($get_ip['user_ip']== ''){
    $insert_ip = mysql_query("UPDATE user SET user_ip='$user_ip' WHERE username='$username' AND password='$password'");
     if(!$insert_ip){
         $message = 'invalid query'.mysql_error();
         die($message);
     }else{
         echo ('success!');
     };
};

もちろん、user_ipフィールドが空の場合、基本的に、値ip_userでuser_ip行のテーブルuserを更新しようとしています。

したがって、何も更新されず、user_ip ファイルは空のままです。助けてください。

4

3 に答える 3

1

スクリプトで確認できることが2つあります。

  1. if($get_ip['user_ip']== '')ステートメントを使用しています。このステートメントは、$get_ip['user_ip']が空の場合にのみデータを挿入するか、データがある場合$get_ip['user_ip']はデータの挿入を無視します。

  2. 更新クエリで使用SET user_ip='$user_ip'していますが、正しくない可能性がありますが、挿入クエリではなく$get_ip['user_ip']使用する状況である場合は、からデータを保存しようとしていると思います。SET user_ip='$get_ip['user_ip']'SET user_ip='$user_ip'

于 2012-08-31T05:47:30.213 に答える
0
if($get_ip['user_ip']== '')

$get_ip['user_ip'] が空の場合を除き、機能しません。

使用する

if(!empty($get_ip['user_ip']))

代わりは

于 2012-08-31T02:39:04.097 に答える
0

ここには非常に多くの間違いがありますが、役立つようにするために:

クエリ文字列を関数に直接挿入するのではなく、変数に割り当てますmysql_query。すると、echoこの紐が出てきます。これにより、データベースに送信する必要があることが示されます。その出力をどこかにコピーしてから、データベースの管理に使用するものにログインします (phpMyAdmin になると思います)。データベースを開き、対象のテーブルを開き、クエリ エディターを使用してクエリを実行します (前にコピーした出力を貼り付けます)。

  • クエリ文字列が期待どおりでない場合は、コード エラーが発生しています。
  • クエリが期待どおりで、データベース ツールで実行される場合は、接続文字列で使用しているユーザー アカウントにアクセス許可の問題がある可能性があります。
  • クエリが期待どおりであるにもかかわらず、データベース ツールで正しく実行されない場合、問題はスキーマ エラーである可能性が高くなります。
于 2012-08-31T06:06:44.333 に答える