PHP クラスに奇妙な問題があります。私がこれを行う場合:
$message= new Message();
$message->load(43);
動作しません。スクリプトは Web ページを提供しません。
しかし、私がこれを行うと:
$message=new Message();
$message->loadMessageBasics(43);
$message->loadMessageMembers(43);
$message->loadMessageStates(43);
その後、 print_r($message) は私が期待したものを提供します。
誰かが私が間違っていることを教えてもらえますか?
メッセージクラスファイルは次のとおりです。
前もって感謝します!
<?php
class Message
{
public $id;
public $recipients;
public $sender;
public $subject;
public $body;
public $creationDate;
public $msgStates;
function __construct() {
}
public function load($mid){
$this->loadMessageBasics($mid);
$this->loadMessageMembers($mid);
$this->loadMessageStates($mid);
}
public function loadMessageBasics($mid){
try{
$db=initdb();
$result=$db->run("SELECT id, feladoid, targy, szovegtorzs, l_idopont FROM messages WHERE id=".$mid);
foreach($result as $row){
extract($row);
$this->id=$id;
$sender=new User();
$sender->load($feladoid);
$this->sender=$sender;
$this->subject=$targy;
$this->body=$szovegtorzs;
$this->creationDate=$l_idopont;
}
$db=null;
}
catch(Exception $e){
echo("Hiba: ".$e->getMessage());
}
}
public function loadMessageMembers($mid){
try{
$db=initdb();
$result=$db->run("SELECT id, tagkod, tagid, l_idopont, m_idopont FROM members WHERE modulkod=11 AND modulid=".$mid);
foreach($result as $row){
extract($row);
$newRecipient= new Member();
$newRecipient->id=$id;
$newRecipient->tagkod=$tagkod;
$newRecipient->tagid=$tagid;
$newRecipient->l_idopont=$l_idopont;
$newRecipient->m_idopont=$m_idopont;
$this->recipients[]=$newRecipient;
echo("<PRE>");
print_r($newRecipient);
echo("</PRE>");
}
$db=null;
}
catch(Exception $e){
echo("Hiba: ".$e->getMessage());
}
}
public function loadMessageStates($mid){
try{
$db=initdb();
$result=$db->run("SELECT id, uzenetid, userid, mappakod, o_idopont, m_idopont FROM msgstates WHERE uzenetid=".$mid);
foreach($result as $row){
extract($row);
$newState= new MsgState();
$newState->id=$id;
$newState->uzenetid=$uzenetid;
$newState->userid=$userid;
$newState->mappakod=$mappakod;
$newState->o_idopont=$o_idopont;
$newState->m_idopont=$m_idopont;
$this->msgStates[]=$newState;
}
$db=null;
}
catch(Exception $e){
echo("Hiba: ".$e->getMessage());
}
}
}
?>
アップデート:
問題は XAMPP Apache または PHP の部分にあるようです。サーバーのアプリケーションイベントログには次のように記載されています。
Napló neve: Application
Forrás: Application Error
Dátum: 2013.06.13. 9:03:55
Eseményazonosító:1000
Feladatkategória:(100)
Szint: Hiba
Kulcsszavak: Klasszikus
Felhasználó: n.a.
Számítógép: SZENTENDRE.iirf.hu
Leírás:
A hibát okozó alkalmazás neve: httpd.exe, verzió: 2.4.3.0, időbélyeg: 0x502f70a3
A hibát okozó modul neve: php5ts.dll, verzió: 5.4.7.0, időbélyeg: 0x505114f8
Kivételkód: 0xc0000005
Hiba pozíciója: 0x0004e399
A hibát okozó folyamat azonosítója: 0x860
A hibát okozó alkalmazás indításának időpontja: 0x01ce680080b003fa
A hibát okozó alkalmazás elérési útja: C:\xampp\apache\bin\httpd.exe
A hibát okozó modul elérési útja: C:\xampp\php\php5ts.dll
Jelentés azonosítója: 68aa9b7c-d3f7-11e2-a808-00241d779aba
Esemény XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2013-06-13T07:03:55.000000000Z" />
<EventRecordID>10202</EventRecordID>
<Channel>Application</Channel>
<Computer>SZENTENDRE.iirf.hu</Computer>
<Security />
</System>
<EventData>
<Data>httpd.exe</Data>
<Data>2.4.3.0</Data>
<Data>502f70a3</Data>
<Data>php5ts.dll</Data>
<Data>5.4.7.0</Data>
<Data>505114f8</Data>
<Data>c0000005</Data>
<Data>0004e399</Data>
<Data>860</Data>
<Data>01ce680080b003fa</Data>
<Data>C:\xampp\apache\bin\httpd.exe</Data>
<Data>C:\xampp\php\php5ts.dll</Data>
<Data>68aa9b7c-d3f7-11e2-a808-00241d779aba</Data>
</EventData>
</Event>
(すみません、ハンガリー語です)
また、Apache イベントログには、クラッシュ後も常に次のように表示されます。
[Thu Jun 13 09:03:55.233443 2013] [mpm_winnt:notice] [pid 4252:tid 396] AH00428: Parent: child process exited with status 255 -- Restarting.
[Thu Jun 13 09:03:55.826244 2013] [mpm_winnt:notice] [pid 4252:tid 396] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 configured -- resuming normal operations
[Thu Jun 13 09:03:55.826244 2013] [mpm_winnt:notice] [pid 4252:tid 396] AH00456: Server built: Aug 18 2012 12:41:37
[Thu Jun 13 09:03:55.826244 2013] [core:notice] [pid 4252:tid 396] AH00094: Command line: 'C:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Thu Jun 13 09:03:55.826244 2013] [mpm_winnt:notice] [pid 4252:tid 396] AH00418: Parent: Created child process 2288
[Thu Jun 13 09:03:57.245846 2013] [mpm_winnt:notice] [pid 2288:tid 288] AH00354: Child: Starting 150 worker threads.
誰でも私はそれについて何をすべきか提案がありますか?