4

こんな問い合わせがあります

UPDATE `database`.`user` 
SET `Password`=Password("test1234!@#$") 
WHERE `UserID`='1234';

これを一度実行したところ、パスワードが正常に更新されました。テストで t の大文字と小文字を変更したところ、メッセージで失敗し始めました

エラー コード: 1146。テーブル 'database.Unknown' は存在しません。

いくつかの実験の後$、文字列内の を削除すると、クエリが正常に実行されることがわかりました。/ で文字をエスケープしようとしましたが、それでもエラーが発生しました。列の照合は でutf8あり、それはvarchar(50)です。

クエリ自体は、Community Edition で実行されていMySQL Workbench 5.2.47ますMySQL version 5.1.62

$ が面倒な理由を教えてください。

編集:特殊文字なしで発生しています。また、パスワードをハッシュするより安全な方法があることも認識しています。この時点で、特定のエラーが発生している理由に興味があります。

4

2 に答える 2

1

最初にワークベンチから問題を推測します。コマンド プロンプト (mysql -u Username -pPassword -h hostname) からログインするか、phpmyadmin を使用してログインし、クエリを実行してみます。

それが機能する場合、それはワークベンチです。

次に、最初にワークベンチで構成されているすべての接続設定を削除して、再度追加することをお勧めします。これにより、すでに問題が解決している可能性があります。

問題が解決しない場合は、ワークベンチの再インストールを試みることができます。

于 2013-04-04T21:35:19.573 に答える
0

これが入ったトリガーが存在するということになりました

INSERT INTO Unknown VALUES(1);

これの目的はわかりませんが、明らかに問題を引き起こしていました。助けてくれてありがとう。

于 2013-04-05T14:16:18.887 に答える