Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2016-08-05 13:31:44

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,211
ウェブサイト

NP_znItemFieldEX GitHubの0.14にてSQLエラー

NP_znItemFieldEXにて投稿時・アイテム編集時にsubmitするとSQLエラーがでます。

mySQL error with query INSERT INTO nucleus_plug_znitemfieldex_table_item_b1 SET id=XXX, : 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 '' at line 1

記事では「このアイテムには、znItemFieldEXデータが、存在していません。」となっており、「znItemFieldEXデータを追加しない」のチェックは外しても外さなくても一緒です。
記事自体の投稿には問題ありません。

PHPバージョン5.5
使用しているNP_znItemFieldEX
https://github.com/NucleusCMS/NP_znItemFieldEX


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#2 2016-08-05 16:44:03

nshown
メンバー
登録日: 2008-01-05
投稿: 105

Re: NP_znItemFieldEX GitHubの0.14にてSQLエラー

このエラーが出ている場合、下記の文字で始まるワーニングも表示されているのではないかと思います。

Warning: Cannot modify header information - headers already sent by

解決策ではないのですが、同様エラーで次の2つの対策を取ったことがあります。

1つ目は、znitemfieldEXで追加したフィールドがあるブログではこのエラーが出ないことから、エラーが起こるブログに、なにか1つダミーのフィールドを設ける方法です。

もう1つは、php.iniでoutput_bufferingをONにする方法です。

編集者 nshown (2016-08-05 16:47:29)

オフライン

#3 2016-08-06 11:51:28

ピヨピヨbird
メンバー
登録日: 2015-04-05
投稿: 101

Re: NP_znItemFieldEX GitHubの0.14にてSQLエラー

NP_znItemFieldEX.php 681行目
function itemdataAdd($tname, $itemid)の下の

$sql_str = "INSERT INTO ".$this->table_table.$tname." SET ".(($itemid > 0) ? "id=".$itemid.", " : "").$this->create_sql($tname);

 $sql2 = $this->create_sql($tname);
 if (strlen($sql2) == 0) // 設定するものがないので終了
      return ;
 $sql_str = "INSERT INTO ".$this->table_table.$tname
          . " SET ".(($itemid > 0) ? "id=".$itemid.", " : "")
          . $sql2;

にすると直ります

オフライン

#4 2016-08-06 12:23:47

ピヨピヨbird
メンバー
登録日: 2015-04-05
投稿: 101

Re: NP_znItemFieldEX GitHubの0.14にてSQLエラー

PHPの警告表示は NP_znItemFieldEX.php の

    function doTemplateVar(&$item, $fname, $format='', $templateName='', $templateParseFlag='')
    {
        echo $this->getItemFieldEX($item->itemid, $fname, $format, $templateName, $templateParseFlag);
    }

    function doTemplateVar(&$item)
    {
        // doTemplateVar(&$item, $fname, $format='', $templateName='', $templateParseFlag='')
        $args = func_get_args();
        $args[0] = $item->itemid;
        echo call_user_func_array(array($this, "getItemFieldEX"), $args);
    }

にすると直ると思います。

オフライン

#5 2016-08-08 01:25:26

ピヨピヨbird
メンバー
登録日: 2015-04-05
投稿: 101

Re: NP_znItemFieldEX GitHubの0.14にてSQLエラー

藤咲 さんの発言:

NP_znItemFieldEXにて投稿時・アイテム編集時にsubmitするとSQLエラーがでます。

https://github.com/NucleusCMS/NP_znItemFieldEX
に修正はいりました。 確認してみてください

オフライン

#6 2016-08-08 18:11:10

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,211
ウェブサイト

Re: NP_znItemFieldEX GitHubの0.14にてSQLエラー

ピヨピヨbird さんの発言:
藤咲 さんの発言:

NP_znItemFieldEXにて投稿時・アイテム編集時にsubmitするとSQLエラーがでます。

https://github.com/NucleusCMS/NP_znItemFieldEX
に修正はいりました。 確認してみてください

ピヨピヨbirdさんありがとうございました。
アップデートしてエラーが出ないこと確認しました。

wikiも簡単にですけど更新しておきました。
http://japan.nucleuscms.org/wiki/plugins:znitemfieldex


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

Board footer