私のphpコードでは、通常のSQLの前にストアドプロシージャを呼び出します(リンク:SELECT * FROM TABLE
;)クエリを実行します。そのストアド プロシージャは実行されますが、通常の SQL は実行できません。どちらの場合も mysql_query() を使用します。しかし、通常のSQLを実行すると、両方の時間が実行されます。
mysql_query() を持つクラス dataManager があります
ここに私のコードがあります:
require_once 'DL/DataManager.php'; require_once 'utils/Utils.php'; require_once 'DL/class/event/Event.php';
$Utils = new Utils();
$obj = new Event();
$result = array();
$result = $obj->get_all_event_data("NULL"); //Query = "CALL events_all_data(" . $ID . ");";
echo date("y-m-d h:i:s")."<br />";
echo $Utils->getString_UserName_ByUserID( "23" )."<br />"; // Not Run Query = SELECT `USER_NICK` FROM `USER_INFO` WHERE `USER_ID` ='".$string ."';";
DataManager.php
public function openConnection() { $this->connection = mysql_connect($this->HostName, $this->UserName, $this->PassWord); if (!$this->connection) { return mysql_error(); } mysql_select_db($this->DataBase); return $this->connection; }
SQLクエリを実行
public function retrieveData($Query = "")
{
//$Query = mysql_real_escape_string($Query);
//echo "DB retriveData query : ".$Query. " <br />";
$data = mysql_query($Query);
$num_rows = mysql_num_rows($data);
//echo "db ret number : ".$num_rows." asdas: ". "\n";
if($num_rows)
{
$this->Data = array();
//$i = 0;
while ($mat[] = mysql_fetch_row($data));
//echo $mat[$i++][2]."<br />";
$this->Data = $mat;
//print_r($this->Data);
//$result = $this->getArrayTranspose($mat);
}
else
{
$this->Data = NULL;
}
//return $result;
}
接続を閉じる
public function closeConnection()
{
if(!$this->connection)
{
mysql_close ();
return ;
}
else if($this->connection == NULL)
{
mysql_close ();
return ;
}
else if(!isset($this->connection))
{
mysql_close ();
return ;
}
else if(is_resource($this->connection))
{
mysql_close($this->connection);
return ;
}
else
{
//mysql_close();
}
}