ディストリビュータのサイトから製品データをダウンロードし、定義した設定に基づいて分類するモジュールを作成しています。カテゴリ マッピングは、次のSQL
表に定義されています。
関数はforeach
、データをダウンロードするループ内から呼び出されます。上記のデータベースにクエリを実行し、ディストリビューターから受け取った文字列値に基づいてカテゴリを保存する関数を作成する前に、エラーは発生しませんでした。関数を呼び出す行は次のとおりです。
//Get PS category based on mapped values
$PsCategory = getPsCategory($category1);
この関数を呼び出した後、次のエラーが発生し始めました。
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\prestaprep1-5-3-1\modules\stlimportmodule\model\database.php on line 7
関連する機能は次のとおりです。
function getMappedData(){
include('C:/xampp/htdocs/prestaprep1-5-3-1/modules/stlimportmodule/model/database.php');
$query='SELECT * FROM category_maps';
$statement = $db->prepare($query);
$statement -> execute();
$fetchedData = $statement ->fetchAll();
$statement -> closeCursor();
return $fetchedData;
}
function getPsCategory($stlCategory){
$fetchedData = getMappedData();
// print_r($fetchedData);
foreach ($fetchedData as $mappedSTLvalues) {
if($stlCategory == $mappedSTLvalues[0]){
$psCategoryValue = $mappedSTLvalues['ps_category'];
}else{
$psCategoryValue = 2;
}
}
return $psCategoryValue;
}
お気付きかもしれませんが、これを 2 つの関数に分けています。1 つはコントロールとして、もう 1 つは単にSQL
クエリを実行するためです。最初はすべて同じ機能でしたが、トラブルシューティングに役立つように分割しました。私のdbファイルは次のとおりです。
$dsn = 'mysql:host=localhost;dbname=ps_development';
$username = 'root';
$password = '';
try {
$db = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
$error_message = $e->getMessage();
include('database_error.php');
exit();
}
//DEBUG: echo "database.php is referenced"
7 行目は次のとおりです。
$db = new PDO($dsn, $username, $password);
私の知る限り、コードのどこかで無限ループに入っているようです。この db ファイルを使用すると、他の関数でエラーが発生することはなく、クエリ構文にエラーが表示されません。データベースには 9 つのレコードしか含まれていないため、大きすぎません。
誰かが私が見逃していることを指摘できれば、私はそれを感謝します.
print_r を実行すると、次の出力が得られます。
Array ( [0] => Array ( [stl_category] => Christian Living [0] => Christian Living [ps_category] => 38 [1] => 38 [id] => 3 [2] => 3 ) [1] => Array ( [stl_category] => Inspirational Motivation [0] => Inspirational Motivation [ps_category] => 230 [1] => 230 [id] => 4 [2] => 4 ) [2] => Array ( [stl_category] => Love and Marriage [0] => Love and Marriage [ps_category] => 231 [1] => 231 [id] => 5 [2] => 5 ) ) Array ( [0] => Array ( [stl_category] => Christian Living [0] => Christian Living [ps_category] => 38 [1] => 38 [id] => 3 [2] => 3 ) [1] => Array ( [stl_category] => Inspirational Motivation [0] => Inspirational Motivation [ps_category] => 230 [1] => 230 [id] => 4 [2] => 4 ) [2] => Array ( [stl_category] => Love and Marriage [0] => Love and Marriage [ps_category] => 231 [1] => 231 [id] => 5 [2] => 5 ) ) Array ( [0] => Array ( [stl_category] => Christian Living [0] => Christian Living [ps_category] => 38 [1] => 38 [id] => 3 [2] => 3 ) [1] => Array ( [stl_category] => Inspirational Motivation [0] => Inspirational Motivation [ps_category] => 230 [1] => 230 [id] => 4 [2] => 4 ) [2] => Array ( [stl_category] => Love and Marriage [0] => Love and Marriage [ps_category] => 231 [1] => 231 [id] => 5 [2] => 5 ) ) Array ( [0] => Array ( [stl_category] => Christian Living [0] => Christian Living [ps_category] => 38 [1] => 38 [id] => 3 [2] => 3 ) [1] => Array ( [stl_category] => Inspirational Motivation [0] => Inspirational Motivation [ps_category] => 230 [1] => 230 [id] => 4 [2] => 4 ) [2] => Array ( [stl_category] => Love and Marriage [0] => Love and Marriage [ps_category] => 231 [1] => 231 [id] => 5 [2] => 5 ) ) Array ( [0] => Array ( [stl_category] => Christian Living [0] => Christian Living [ps_category] => 38 [1] => 38 [id] => 3 [2] => 3 ) [1] => Array ( [stl_category] => Inspirational Motivation [0] => Inspirational Motivation [ps_category] => 230 [1] => 230 [id] => 4 [2] => 4 ) [2] => Array ( [stl_category] => Love and Marriage [0] => Love and Marriage [ps_category] => 231 [1] => 231 [id] => 5 [2] => 5 ) ) Array ( [0] => Array ( [stl_category] => Christian Living [0] => Christian Living [ps_category] => 38 [1] => 38 [id] => 3 [2] => 3 ) [1] => Array ( [stl_category] => Inspirational Motivation [0] => Inspirational Motivation [ps_category] => 230 [1] => 230 [id] => 4 [2] => 4 ) [2] => Array ( [stl_category] => Love and Marriage [0] => Love and Marriage [ps_category] => 231 [1] => 231 [id] => 5 [2] => 5 ) )