バージョン選択

フォーラム

メニュー

オンライン状況

54 人のユーザが現在オンラインです。 (43 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 54
もっと...

サイト内検索

質問 > 管理機能 > 配信予約実行時のエラー

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
horizon999
投稿日時: 2011/1/18 13:13
対応状況: −−−
半人前
登録日: 2011/1/16
居住地:
投稿: 12
配信予約実行時のエラー
いつも参考にさせていただいております。

メルマガの配信予約で、cronが実行された際に
FATAL Error(256) /usr/home/******/www/htdocs/data/class/SC_DbConn.php:244 SELECT * FROM dtb_send_history WHERE del_flg = 0 AND end_date IS NULLstart_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INTERVAL 5 minute) ORDER BY send_id
というエラーがでます。
サーバー側に問い合わせたところ、
NULLstart_date BETWEEN date_add(now(),INTERVAL -5 minute)
あたりの記述を修正しなさいとの回答をいただきました。

メルマガ配信に関しては、ユーザー検索の絞り込みを自分で修正しておりますが、絞り込みに関しては本サイトでアドバイスをいただき動作していると思います。

いろんな壁を乗り越えながら一歩ずつ前進している状態です。
なにとぞアドバイスいただけますようお願いいたします。


追記:エラーメール全文です。
通常の配信(即時配信?)は問題なく行えております。

FATAL Error(256) /usr/home/******/www/htdocs/data/class/SC_DbConn.php:244 SELECT * FROM dtb_send_history WHERE del_flg = 0 AND end_date IS NULLstart_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INTERVAL 5 minute) ORDER BY send_id

DB Error: syntax error

SELECT * FROM dtb_send_history WHERE del_flg = 0 AND end_date IS NULLstart_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INTERVAL 5 minute) ORDER BY send_id [nativecode=1064 ** 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 'NULLstart_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INT' at line 1]

/usr/home/******/www/htdocs/data/module/DB.php 970:PEAR_Error->PEAR_Error /usr/home/******/www/htdocs/data/module/PEAR.php 557:DB_Error->DB_Error /usr/home/******/www/htdocs/data/module/DB/common.php 1912:PEAR->raiseError /usr/home/******/www/htdocs/data/module/DB/mysql.php 898:DB_common->raiseError /usr/home/******/www/htdocs/data/module/DB/mysql.php 327:DB_mysql->mysqlRaiseError /usr/home/******/www/htdocs/data/module/DB/common.php 1220:DB_mysql->simpleQuery /usr/home/******/www/htdocs/data/module/DB/common.php 1667:DB_common->query /usr/home/******/www/htdocs/data/class/SC_DbConn.php 181:DB_common->getAll /usr/home/******/www/htdocs/data/class/SC_Query.php 93:SC_DbConn->getAll /usr/home/******/www/htdocs/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php 93:SC_Query->select /usr/home/******/www/htdocs/data/class_extends/page_extends/admin/mail/LC_Page_Admin_Mail_Sendmail_Ex.php 56:LC_Page_Admin_Mail_Sendmail->process
/usr/home/******/www/htdocs/admin/mail/sendmail.php 34:LC_Page_Admin_Mail_Sendmail_Ex->process



----------------------
EC-CUBE:2.4.2-comu
DBサーバ:MySQL 5.1.50
PHP:5.2.14
使用サーバー:OCNメール&ウェブ2ライト
ゲスト
投稿日時: 2011/1/18 15:52
対応状況: −−−
Re: 配信予約実行時のエラー
NULLstart_date BETWEEN date_add(now(),INTERVAL -5 minute)

構文的には、空白が必要ではないですか?
NULL(sp)start_date

#小生、メイルマガ予約配信を使ったことはないです。
#この機会に、ちょっと、試してみよう。。。
horizon999
投稿日時: 2011/1/18 19:33
対応状況: −−−
半人前
登録日: 2011/1/16
居住地:
投稿: 12
Re: 配信予約実行時のエラー
Ringoさん

ありがとうございます。
どのファイルを修正していいのか分かりませんが、もうちょっと自分でもがいてみます。
ゲスト
投稿日時: 2011/1/18 20:28
対応状況: −−−
Re: 配信予約実行時のエラー
data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php
の中の
引用:
/**
* Page のプロセス.
*
* @return void
*/
function process() {




引用:
// リアルタイム配信モードがオンのとき
if ($_GET['mode'] == 'now') {
// 指定データを取得する
$where .= ' AND send_id = ?';
$sqlval[] = $_GET['send_id'];
if ($_GET['retry'] != 'yes') {
$where .= ' AND complete_count = 0 AND end_date IS NULL';
}
} else {
$where .= ' AND end_date IS NULL';
// postgresql と mysql とでSQLをわける
if (DB_TYPE == "pgsql") {
$where .= "start_date BETWEEN current_timestamp + '- 5 minutes' AND current_timestamp + '5 minutes'";
} else if (DB_TYPE == "mysql") {
$where .= "start_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INTERVAL 5 minute)";
}
// 30分毎にCronが送信時間データ確認
}

の部分が、NGの様な気がします。

$where .= ' AND end_date IS NULL';

$where .= "start_date BETWEEN...
を繋げてるから。。。

ここを
$where .= " start_date BETWEEN...
と、start_dateの前に半角空白を1文字入れれば良いと思います。

#試している途中で、取りあえず、見つけました。
#まだ、小生の元では動作確認出来てません。。。
horizon999
投稿日時: 2011/1/19 0:54
対応状況: −−−
半人前
登録日: 2011/1/16
居住地:
投稿: 12
Re: 配信予約実行時のエラー
Ringoさま

アドバイスありがとうございます。
ご指摘通りdata/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.phpを修正してみたのですが、同じエラー文が帰ってきます。(スペースが空いた文)

明日もう一度冷静になったところで関連すると思われる個所を見直してみます。
本当にありがとうございます。
ゲスト
投稿日時: 2011/1/19 11:08
対応状況: −−−
Re: 配信予約実行時のエラー
$where .= " start_date BETWEEN...

$where .= " AND start_date BETWEEN...
としないとだめですね、、、

小生はPostgreSQLですが、これで、エラーは出なくなりました。

残るは、実際に配信されるかどうか。。。
horizon999
投稿日時: 2011/1/19 12:35
対応状況: 解決済
半人前
登録日: 2011/1/16
居住地:
投稿: 12
Re: 配信予約実行時のエラー
Ringoさん

ありがとうございます!!!!
エラーも消えて、配信も時間通りできました。

data/class/pages/admin/mail/LC_Admin_Mail_Sendmail.phpの87行目付近を修正しました。

$where .= "start_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INTERVAL



$where .= " AND start_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INTERVAL

cronのエラー文が送られて来ないとちょっと寂しい気もしますが、今日から安心して眠れます。
もっと修業を積んで、自分で解決できるように頑張ります。
本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,310名です
総投稿数は110,369件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1360
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.