icoca
@icoca

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

cronで実行した際のみ発生するPHPのエラー

Q&A

Closed

PHPで以下のような現在の時刻をDBに記録するような簡単なプログラムをPHPで作り、
コマンドで呼び出したり、ブラウザから実行すると何ら問題なく動作するのですが、
cronで実行するとエラーになってしまいます。

mb_language("Japanese");
mb_internal_encoding("UTF-8");
date_default_timezone_set('Asia/Tokyo');

include_once '../dbconnect.php';

$execDate = date('Y-m-d H:i:s');

$SQL = "INSERT INTO z_cronTest ";
$SQL .= "(dt) VALUES ('" . $execDate . "')";

$res = $mysqli->query($SQL);

cronのログを見ると下記のようなエラーが発生しています。

Call to a member function query() on null in

3日ほど原因を調べていますが、全く見当もつかず...

どなたか解決方法をご教示頂ければたいへん助かりますm(_ _)m

0

1Answer

詳しくは分かりませんが、次の2点が考えられると思います。どうでしょうか。

include_once '../dbconnect.php';

1.カレントディレクトからの相対パスになっている。cronで起動した時もカレントディレクトは同じか? → 絶対パスに変えてみる。

2.プロセスを起動するユーザ(アクセス権)に違いがないか? psコマンドで確認する。

0Like

Comments

  1. @icoca

    Questioner

    絶対パスに変えてみることにより解決しました!
    ありがとうございましたm(_ _)m

Your answer might help someone💌