0

ファイルをクリーンアップし、古いデータベース エントリを削除するために CRON によって毎日実行される PHP スクリプトを作成しました。

スクリプトの実行に問題はないので、CRON の問題ではないことはわかっています。

問題は、次のエラーが発生することです。

警告: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1142行の/cron_removeOld.phpのテーブル 'users' のユーザー 'username'@'localhost' に対する SELECT コマンドが拒否されました35

バックエンド管理者ユーザーに同じ DB 資格情報を使用しているため、SELECT 権限があることがわかります。Web サーバーの外部で実行されているスクリプトと関係があるのでしょうか?

どんな助けでも大歓迎です!

クロン:

20 0 * * * php -q /home/user/public_html/tssol/contract/admin/cron_removeOld.php

PHP (35 行目):

$stmt = $dbh->prepare("SELECT idusers, contract FROM users WHERE contractExpireDate <= NOW()");

データベースの信用情報は、他のページと共有されているインクルード ファイルに含まれているため、問題ではないことはわかっています。役立つと思われる場合は投稿します。

4

1 に答える 1

1

MySQL のアクセス許可は、CLI などで実行される PHP とは何の関係もありません。
mysql ユーザーがユーザー テーブルの SELECT 特権を持っているかどうかを確認します。

于 2011-06-13T20:41:27.127 に答える