2017-07-01 10 views
4

私のウェブサイトにプラグインをインストールすると、次のエラーメッセージが表示されます。 MYSQL/PhpMyadminでこの問題を解決するためにどのクエリを実行するのだろうか?MySQLでテーブルを無視しIDを変更するにはどうすればよいですか?

Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IGNORE TABLE `xf_trophy_category` DROP PRIMARY KEY , CHANGE `trophy_category_id`' at line 1 - library/Zend/Db/Statement/Mysqli.php:77

更新。

これはスタックトレースです。私はプラグインの開発者に尋ねたが、彼らはそれに取り組んでいない。

0 /home/admin/web/.com/public_html/library/Zend/Db/Statement.php(115):

Zend_Db_Statement_Mysqli->_prepare('ALTER IGNORE TA...')

1 /home/admin/web/.com/public_html/library/Zend/Db/Adapter/Mysqli.php(381):

Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Mysqli), 'ALTER IGNORE TA...')

2 /home/admin/web/.com/public_html/library/Zend/Db/Adapter/Abstract.php(478):

Zend_Db_Adapter_Mysqli->prepare('ALTER IGNORE TA...')

3 /home/admin/web/.com/public_html/library/Waindigo/Install/20150313.php(758):

Zend_Db_Adapter_Abstract->query('ALTER IGNORE TA...')

4 /home/admin/web/.com/public_html/library/Waindigo/Install/20150313.php(216):

Waindigo_Install->_makeTableChanges(Array)

5 /home/admin/web/.com/public_html/library/Waindigo/Install/20150313.php(88):

Waindigo_Install->_install(Array, Object(SimpleXMLElement))

6 /home/admin/web/.com/public_html/library/XenForo/Model/AddOn.php(214):

Waindigo_Install::install(false, Array, Object(SimpleXMLElement))

7 /home/admin/web/.com/public_html/library/XenForo/Model/AddOn.php(169):

XenForo_Model_AddOn->installAddOnXml(Object(SimpleXMLElement), false)

8 /home/admin/web/.com/public_html/library/XenForo/ControllerAdmin/AddOn.php(188):

XenForo_Model_AddOn->installAddOnXmlFromFile('/home/admin/tmp...')

9 /home/admin/web/.com/public_html/library/XenForo/FrontController.php(351):

XenForo_ControllerAdmin_AddOn->actionInstall()

10 /home/admin/web/.com/public_html/library/XenForo/FrontController.php(134):

XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))

11 /home/admin/web/.com/public_html/admin.php(13): XenForo_FrontController->run()

12 {main}

+0

このエラーをスローするクエリを最初に追加できますか? –

+1

おそらくあなたはプラグインの開発者に尋ねる必要があります。設定が最小要件を満たしていますか? – apokryfos

+0

こんにちは、スタックトレースを追加しました。問題の提案があれば助けになります。私はあなたのすべての助けに感謝します。 –

答えて

2

プラグインがMySQL 5.7と互換性がないか、またはコードを書いた人は明らかに、ALTER IGNOREがMySQL Server 5.6で廃止され、MySQL Server 5.7では完全に削除されていることを認識していません。データベースの管理が厄介なため、常に悪い考えでした。

IGNORE is a MySQL extension to standard SQL. It controls how ALTER TABLE works if there are duplicates on unique keys in the new table or if warnings occur when strict mode is enabled. If IGNORE is not specified, the copy is aborted and rolled back if duplicate-key errors occur. If IGNORE is specified, only one row is used of rows with duplicates on a unique key. The other conflicting rows are deleted. Incorrect values are truncated to the closest matching acceptable value.

As of MySQL 5.6.17, the IGNORE clause is deprecated and its use generates a warning. IGNORE is removed in MySQL 5.7.

https://dev.mysql.com/doc/refman/5.6/en/alter-table.html

エラーがthe correct syntax to use near 'IGNORE ...'を意味し、サーバはそれが有効でない場合IGNOREが発生したことを語っています。それ以前のものはすべて正確に解析され、それ以降はすべて正しいかもしれないし、間違っているかもしれませんが、予期せぬことが発生したためにこれを判断することはできません。

私が正しくあなたのスタックトレースを読んでいた場合、それはここにあります:それはALTER TABLE ...を開始するよう

3 
/home/admin/web/.com/public_html/library/Waindigo/Install/20150313.php(758): 
Zend_Db_Adapter_Abstract->query('ALTER IGNORE TA...') 

Waindigo/Install/20150313.phpライン758から単語IGNOREを削除します。

+1

ありがとうございます。あなたは正しい。私はMySQL 5.7を使用していますが、IGNOREは価値が下がりました。私は20150313.phpの3つの異なる行でIGNOREを 'ALTER IGNORE TABLE'から削除し、プラグインをうまくインストールしました。私はあなたを助けてくれてありがとう、本当に感謝しています。 –

0

単純なクエリだけでは正しく処理されますが、この場合、そのようなクエリは存在しないと思われます。良いニュースは、エラーがソフトウェアプラグインに問題があると指摘していることです。プラグインにバグが存在する可能性がありますが、エラーメッセージを調べると、ソフトウェア競合の可能性が高いシナリオがよくわかります。

現在の設定では、MySQLでPHPMyAdminを使用していることがOPに記載されています。しかし、PHPの世界では、MySQLは今や厄介であり、ユーザはMySQLiに切り替えるよう促されています。

:あなたが提供する、インストールされているmysqliのを次のようにあなたのPHPの設定ファイルを調整する必要があり、このdiscussionパー

Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error:

:Zendのからのプラグインは(?ZendFrameworkはおそらく)どうやらそれが提起エラーごとにMySQLiをを期待します$ cfg ['Servers'] [$ i] ['extension'] = 'mysqli';

そうしないと、プラグインが正しく機能するようにMySQLiをインストールするだけで済みます。 xerforo言及用

要件:

XenForo System Requirements PHP: 5.2.11+ MySQL: 5.0+ PHP extensions: MySQLi, GD (with JPEG support), PCRE, SPL, SimpleXML, DOM, JSON, iconv, ctype PHP safe_mode off

最後に、あなたはこのcommunityでこの問題を提起することを望むかもしれません。

+0

これはスタックトレースです。私はプラグインの開発者に尋ねるだろうが、彼らはそれに取り組まないと言いました。 –

+0

MySQLiが正しくインストールされているか、それともまだMySQLを使用していますか? – slevy1

+1

ありがとうございます、私はMySQLiをインストールしましたが、問題は5.6 MySQLの代わりに5.7を使用していたためです。IGNOREは@Michael-sqlbotの説明に従って減価償却されました。ご協力ありがとうございました! –

関連する問題