2017-08-14 14 views
0

私は、Apache Webサーバ上のPHP 7.1で非常に単純なmysqliの声明を得た:、インサートの選択問題mysqliのPHP

INSERT INTO user SELECT * FROM user_geloescht WHERE id = '294930'; 

これは、削除されたユーザーのために別々のテーブルにユーザーをコピーする必要があります。しかし、スクリプトを実行すると、データベースに何も起こりません。 mariadb cliに文をコピーすると、エラーなしで動作します。

私はすでに同様の "ユーザーからの列を表示する"と... user_geloescht出力を探しましたが、それはそれを修正しません。

私はあなたにいくつかのデバッグを行いますが、クエリの結果は真実です - >エラーはありません。

何が間違っている可能性がありますか、またはあなたにどのような出力を提供できますか?

編集:私はコメントに書いた通りです。これは、インサートセレクト後にコード出口を実行したときに機能し、コミットに関するものである可能性があります。 Aは、挿入選択した後に実行され、ユーザーテーブル内のユーザIDに削除

は、私は強制的にコミットを試みた後、私が最新のアップにあなたを維持する任意の効果

なくてもです。 PHP-コードを置く

は、その簡単ないくつかの機能の間の引数の私のクラス構造や取り扱いによって

+0

はあなたに利用できるデバッグ[機能](http://php.net/manual/en/mysqli.error.php)を使用してください私たちがあなたを助け、すべてのコードを含めるのを助けるために。 – Script47

+3

PHPコードを投稿してください –

+0

"user_geloescht"に本当にユーザーID "294930"が含まれていますか? –

答えて

0

私はもっとコーヒーが必要だと思います。

問題はeverythinkがうまくいくはずでしたが、私はそれをすべて間違って処理したことでした。

insert-selectは問題ありませんが、間違ったテーブルを指しているので、user_geloescht-tableからuser-tableにコピーしましたが、user_geloescht-tableではなくuser-tableでコピーしたユーザーを削除しました。すべてのあなたの努力に

おかげ - >私はいくつかの休日を要求します:D

0

を起こしていない、これは構文です:あなただけの列を持っていると仮定し

INSERT INTO user (name)SELECT name FROM user WHERE id = 294930 

nameという名前のユーザーテーブル。私はuser_geloeschtが何を意味するのか分かりません。それはテーブルまたは列名です。

+0

2つのテーブルがあります:userとuser_geloeschtはどちらも同じ構造(履歴のフォールト)を持っていて、約190カラムを持っていますので、ステートメントの各カラムには同じ名前の構造体はありません –

+0

INSERT INTO this_table_archive * FROM this_table WHERE id = 294930; 2テーブルの列が同じであることを確認してください。同じ名前と列数。 – Deee